NSApplicationMain如何找到主nib文件?

时间:2017-03-19 12:11:34

标签: objective-c swift cocoa xib nib

The documentation for the NSApplicationMain function说它

  

从应用程序的主程序包

加载主nib文件

在网络上建议Info.plist找到"主nib文件"通过查看密钥NSMainNibFile上的NSApplicationMain文件(由XCode混淆为"主nib文件基本名称"),即let mainBundle: Bundle = Bundle.main let mainNibFileBaseName: String = mainBundle.infoDictionary!["NSMainNibFile"] as! String mainBundle.loadNibNamed(mainNibFileBaseName, owner: myApp, topLevelObjects: nil) 执行类似

的操作
NSMainNibFile

但是如果我删除MainMenu.xib键,应用程序仍会找到并加载我的Foo.xib文件!然后,如果我将文件重命名为Foo.xib,则应用程序会查找并加载NSApplicationMain

{{1}}用于查找"主nib文件"

的实际搜索程序是什么?

1 个答案:

答案 0 :(得分:4)

如果缺少密钥NSMainNibFileNSApplicationMain会调用[NSBundle loadNibNamed:nil owner:application],调用[mainBundle pathForResource:nil ofType:@"nib"],返回找到的第一个nib文件。