正如下面的评论,我没有得到这个与NSWindowController子类一起工作,它似乎保存了很多代码。
这里是我的子标题:
#import <Cocoa/Cocoa.h>
@interface NewAccountSheetController : NSWindowController {
@private
BOOL isValidForInsert;
NSManagedObjectContext * managedObjectContext;
NSObjectController * objectController;
NSObjectController * targetController;
}
@property (setter=setValidForInsert:) BOOL isValidForInsert;
@property (nonatomic, retain) IBOutlet NSManagedObjectContext * managedObjectContext;
@property (nonatomic, retain) IBOutlet NSObjectController * objectController;
@property (nonatomic, retain) IBOutlet NSObjectController * targetController;
- (void)beginSheetForWindow:(NSWindow *)window;
- (IBAction)endSheet:(id)sender;
@end
这里是一个Pastebin实施。
我不知道如何描述所需的绑定等,但如果你熟悉上面的教程,他们应该直接推断......我想。 :-)
这个答案听起来非常合理,但实际上在我得到它之前,我继续前进并尝试......不仅子类化NSWindowController工作,它还节省了相当多的代码!看起来这不是一种风格的东西,就是在编写这个例子后的某段时间才开始工作。 – 2010-08-16 01:13:13
我认为你可能遇到的问题是窗口控制器自动响应比表单所需要的范围更广的事件。窗口控制器假定它控制一个独立的窗口。我会在释放之前进行彻底测试,以确保表格不像窗口的行为,例如没有过渡关闭。 – TechZen 2010-08-16 12:42:31
总是很好的建议!我将确保在发布前彻底测试。 – 2010-08-16 18:07:59