NSApplicationMain 如何找到主要的 nib 文件?
How does NSApplicationMain find the main nib file?
The documentation for the NSApplicationMain
function 说是
loads the main nib file from the application’s main bundle
网络上建议 NSApplicationMain
通过查看 Info.plist
文件中的 NSMainNibFile
键找到 "the main nib file"(被 XCode 混淆为 "Main nib file base name"),即 NSApplicationMain
做类似
的事情
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
用来查找 "the main nib file" 的真正搜索程序是什么?
如果密钥 NSMainNibFile
丢失,NSApplicationMain
调用 [NSBundle loadNibNamed:nil owner:application]
,后者调用 [mainBundle pathForResource:nil ofType:@"nib"]
,returns 它找到的第一个 nib 文件。
The documentation for the NSApplicationMain
function 说是
loads the main nib file from the application’s main bundle
网络上建议 NSApplicationMain
通过查看 Info.plist
文件中的 NSMainNibFile
键找到 "the main nib file"(被 XCode 混淆为 "Main nib file base name"),即 NSApplicationMain
做类似
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
用来查找 "the main nib file" 的真正搜索程序是什么?
如果密钥 NSMainNibFile
丢失,NSApplicationMain
调用 [NSBundle loadNibNamed:nil owner:application]
,后者调用 [mainBundle pathForResource:nil ofType:@"nib"]
,returns 它找到的第一个 nib 文件。