【问题标题】:objective-c Unable to load nib file: RoosterView.xibObjective-c 无法加载 nib 文件: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

标签: objective-c xcode interface-builder xib nib


【解决方案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 只是一个视图。你需要一个窗口来显示它,是吗?
  • 我刚刚编辑了我的答案;它应该让事情更清楚一点。
猜你喜欢
  • 1970-01-01
  • 2012-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多