在Cooca应用程序中,MainMenu.xib是在标准模板中为您设置的.此笔尖也已与应用程序委托一起设置.在info.plist中,键“主nib文件bas ename”将nib文件设置为在启动时加载.
我希望应用程序尽可能在没有nib的情况下启动,我想在应用程序的主委托中的applicationDidFinishLaunching中加载MainMenu.xib.
可能吗?
解决方法
首先,在支持文件中注释掉NSApplicationMain – > main.m. NSApplicationMain()加载Info.plist中提到的主笔尖,因此请跳过它.相反,设置应用程序并委派并运行应用程序:
int main(int argc,const char * argv[]) { //return NSApplicationMain(argc,argv); @autoreleasepool { NSApplication * application = [NSApplication sharedApplication]; MYAppDelegate* appDelegate = [[MYAppDelegate alloc] init]; [application setDelegate:appDelegate]; [application run]; } return EXIT_SUCCESS; }
然后,在app delegate的applicationDidFinishLaunching:function中,调用类似于createMainWindow的东西:
- (void)createMainWindow { self.wincon = [[MYCustomWindowController alloc] initWithWindowNibName:@"MainMenu"]; self.window = self.wincon.window; // window property in appdelegate created for single-view app // Also had to connect About: to application's orderFrontStandardAboutPanel }
MainMenu.xib的File’s Owner自定义类应该从应用程序切换到MYCustomWindowController.
如果MainMenu.xib有一个类似于此示例的窗口,则它的“引用插座”需要连接到File的Owner->窗口.
如果您从单个视图应用程序开始,请从MainMenu.xib中删除App Delegate对象 – 否则xib将创建应用程序委托的第二个实例.如果您引用类似MYAppDelegate.managedObjectContext的内容,这可能会很糟糕.如果需要绑定到应用程序委托,则可以使用delegate.managedObjectContext的键路径绑定到Application.
我为什么这样做?因为有时我的应用程序使用GUI启动,有时它不启动.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。