objective-c - NSApplicationMain 如何找到主 nib 文件?

标签 objective-c swift cocoa xib nib

The documentation for the NSApplicationMain function说是这样

loads the main nib file from the application’s main bundle

网络上建议 NSApplicationMain 通过查看 Info.plist 文件中的 NSMainNibFile 键来查找“主 nib 文件” (被 XCode 混淆为“主 nib 文件基本名称”),即 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 用于查找“主 nib 文件”的真正搜索过程是什么?

最佳答案

如果缺少 NSMainNibFile 键,NSApplicationMain 会调用 [NSBundle loadNibNamed:nil Owner:application],后者会调用 [mainBundle pathForResource :nil ofType:@"nib"] 返回它找到的第一个 nib 文件。

关于objective-c - NSApplicationMain 如何找到主 nib 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42886400/

相关文章:

ios - 是否可以设置自定义单元格的 textLabel?

iphone - 获取对 UIApplication 委托(delegate)的引用

ios - 带有相机 View 的程序化屏幕截图

swift - GCDAsyncUdpSocket 套接字在发送 255 个数据包之间关闭

快速,嵌入带有导航 Controller 的 ui View Controller 以允许后退按钮

swift - 将 vars 添加到闭包 swift

macos - 如何在 OSX 应用程序中将 CoreData 管理与 AppDelegate 分开

ios - 在iOS App中使用Itunes Connect查找API

objective-c - 当 CodeRunner 中的代码片段抛出异常时避免崩溃报告

ios - 是否可以在核心数据提取中添加一个值?