正如下面的評論,我沒有得到這個與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