116*_*684 7 objective-c interface-builder nswindowcontroller
在这个答案中说,可以通过从MainMenu.xib中删除窗口并从中"手动"实例化窗口控制器来获得自定义的NSWindowController applicationDidFinishLaunching:.但它也说:
要停止显示默认窗口,我只需将其删除即可.可能有更好的方法,但我不知道.
是否有更好的办法?如果它存在,那么更好的方法是什么?获得自己的窗口控制器是否被视为"正常"做法?
ilu*_*pra 11
为此,您通常会将NSWindowController子类化,并将File的Owner类更改为nib中的WindowController子类.
编辑:
如果你没有做一个基于文档的应用程序,只是希望自己的NSWindowController做到按需加载笔尖(完全合理的),那么你会从你的笔尖删除窗口实例化一个NSWindowController程序子类,使用它明确地做你的窗口加载...
@implementation MyApplicationDelegate {
MyWindowControllerSubclass *windowController;
}
-(void)applicationDidFinishLaunching:(NSNotification *)notification {
windowController = [[MyWindowControllerSubclass alloc] initWithWindowNibName:@"MyWindowNib"];
[windowController showWindow:nil];
[windowController.window makeKeyAndOrderFront:nil];
}
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,我想向您展示我自己的解决方案.
self.customWindowController = [[AccountWindowController alloc] initWithWindowNibName:@"CustomWindow"];和显示窗口[self.customWindowController showWindow:nil]中- (void)applicationDidFinishLaunching:(NSNotification *)aNotification这是一个示例项目https://www.dropbox.com/s/ft3t7w72806tnoe/CustomWindowController.zip