在
this回答说,通过从MainMenu.xib中删除窗口并从applicationDidFinishLaunching:’手动’实例化窗口控制器,可以有一个自定义的NSWindowController.但它也说:
To stop the default window from showing I just delete it. There’s probably a better way but I don’t know that.
有没有更好的办法?如果它存在,那么更好的方法是什么?获得自己的窗口控制器是否被视为“正常”做法?
解决方法
为此,您通常会将NSWindowController子类化,并将File的Owner类更改为nib中的WindowController子类.
编辑:
如果您没有使用基于文档的应用程序,并且只想让自己的NSWindowController按需加载Nib(完全合理),那么您将从笔尖中删除窗口并以编程方式实例化NSWindowController子类,明确地使用它来做你的窗口加载…
@implementation MyApplicationDelegate { MyWindowControllerSubclass *windowController; } -(void)applicationDidFinishLaunching:(NSNotification *)notification { windowController = [[MyWindowControllerSubclass alloc] initWithWindowNibName:@"MyWindowNib"]; [windowController showWindow:nil]; [windowController.window makeKeyAndOrderFront:nil]; }