Objective-c 无法加载 nib 文件:RoosterView.xib
Posted
技术标签:
【中文标题】Objective-c 无法加载 nib 文件:RoosterView.xib【英文标题】:objective-c Unable to load nib file: RoosterView.xib 【发布时间】:2012-04-06 14:19:29 【问题描述】:我通过编辑 info.plist 文件更改了我的 nib 文件,并将文件的所有者设置为我扩展 NSViewController 的类,但现在它给了我以上错误:
正在运行... 2012-04-06 15:11:45.552 Rooster[1251:a0f] 无法加载 nib 文件:RoosterView.xib,退出
Debugger stopped. Program exited with status value:1.(gdb)
我该如何解决这个问题?
【问题讨论】:
Rooster 是荷兰语,我说的不是公鸡。 我假设 RoosterView.xib 文件确实存在于您的项目中? 当然!它与自动生成的 xib MainView.xib 位于同一目录/文件夹中。 您在 info.plist 中做了哪些更改? 从MainMenu.xib
到RoosterView.xib
【参考方案1】:
此问题的另一个可能原因是指定“MainMenu.xib”而不是“MainMenu”。也就是说,不要包含 .xib 扩展名。
在 Xcode 中输入文件名时,它将自动完成并包含导致错误的 .xib。
【讨论】:
我遇到了同样的问题,结果证明这是原因。谢谢! 很好的建议!谢谢。【参考方案2】:我今天也发生了同样的错误。 通过在主界面下的项目设置中删除 .xib 扩展名来修复它。
图片教程:
改变这个:
对此:
希望这可以帮助某人:)
【讨论】:
+1 用于包含的图像。很快帮我解决了问题。【参考方案3】:更改您的 info.plist 文件,以便它加载您的原始 nib(大概是 MainMenu.xib),并确保文件的所有者是 NSApplication
。在您编写应用程序的绝大多数情况下,这就是您想要的方式。
接下来,在您的 RoosterView.m(我认为它是 NSViewController
子类)中,使用 NSViewController
的 – initWithNibName:bundle:
方法加载您的 RoosterView.xib。
最后,在您恢复的 MainMenu.xib 中,将自定义视图对象添加到您的窗口。将自定义视图的类设为您的 RoosterView。
祝您工作顺利。并且在将来,无论何时创建应用程序,请不要乱用应用程序的 xib 的 File's Owner 设置,除非您很受挫。
【讨论】:
但是我得到 2 个主窗口吗? 好吧,但您的 RoosterView 只是一个视图。你需要一个窗口来显示它,是吗? 我刚刚编辑了我的答案;它应该让事情更清楚一点。以上是关于Objective-c 无法加载 nib 文件:RoosterView.xib的主要内容,如果未能解决你的问题,请参考以下文章