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.xibRoosterView.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的主要内容,如果未能解决你的问题,请参考以下文章

nib 本地化时 Cocoa 无法加载窗口 nib 文件

无法从主包中按名称加载 Nib 文件

如何在不使用视图控制器的情况下使用 nib 文件加载视图

无法将 NIB 文件加载到 UIView

Xamarin 工作室。单触。无法在捆绑包中加载 NIB ... 带有名称

XCode - 无法加载 NIB 文件包