我只希望能够以编程方式创建我的程序。因此,我转到File > New > Project
并选择Cocoa Application
,并确保在向导的下一步中未选中“使用情节提要”。它给我的项目中有一个MainMenu.xib
文件。我不知道什么是.xib
文件,但是我知道它们以我不了解的方式弄乱了我的程序。
那么,如何在没有这些“ storyboard”或“ interface builder”东西的情况下创建一个新的Cocoa Application?启动一个空窗口的最小的纯编程程序是什么?
要回答的第一个问题是:为什么?即使是基础知识MainMenu.xib
也可以为您完成很多工作:创建应用程序的菜单栏,并允许您轻松设置应用程序委托以及其他功能。您可以使用该非常基本的MainMenu.xib
文件,并且仍然可以根据需要手动创建其他所有文件(Windows等)。
如果确实希望.xib
完全避免使用文件,则可以,但是这样做需要对Cocoa有一定的了解。
首先,可可应用程序的main
功能如下所示:
int main(int argc, const char * argv[]) { return NSApplicationMain(argc, argv); }
也就是说,它只是调用了Cocoa的NSApplicationMain
函数。
根据NSApplication
文档,NSApplicationMain()
本质上是这样做的:
void NSApplicationMain(int argc, char *argv[]) { [NSApplication sharedApplication]; [NSBundle loadNibNamed:@"myMain" owner:NSApp]; [NSApp run]; }
现在,如果您根本不使用.xib
文件,则要避免MainMenu.xib
完全加载文件,因此,您将需要编辑默认main()
函数以执行以下操作:
int main(int argc, const char * argv[]) { [NSApplication sharedApplication]; [NSApp setDelegate:[[YourDelegate alloc] init]]; [NSApp run]; return 0; }
然后YourDelegate
将负责创建主应用程序菜单,窗口等。