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

时间:2013-05-30 13:59:57

标签: objective-c macos cocoa

我正在尝试在我的简单Cocoa应用程序中创建并显示新窗口:

myWindow = [[MyWindowController alloc] initWithWindowNibName:@"MyWindow" owner:self];
[myWindow showWindow:self];

它没有本地化的基本nib文件很好用,但是一旦打开这个特定nib文件的本地化(使用Xcode“localize”选项,可用表单文件检查器),应用程序在执行上面的代码时给出了这个错误:

  

- [MyWindowController loadWindow]:无法加载窗口nib文件'AuthWindow'。

在使用本地化笔尖时,我是否应该更改我正在初始化窗口控制器的方式?只有当包含窗口的nib被本地化时(仅使用一种语言 - 英语),当没有配置本地化时,它才会失败 - 窗口被加载并显示在屏幕上。我找不到合适的答案,我是OSX上的Cocoa新手,但是对CocoaTouch和iOS开发有一些经验。

4 个答案:

答案 0 :(得分:8)

我重启了Xcode,错误就消失了......

我不知道......但不管......

答案 1 :(得分:6)

initWithWindowNibName: 可以en.lproj/等本地化目录中找到 .nib 文件。问题是,有时Xcode忘记将 .xib 文件(XML格式的Interface Builder文件,您经常使用)编译成 .nib 文件,或者二进制格式 - 特别是当.xib文件刚刚通过单击“Localized ...”按钮进行本地化时。

如果您打开$build_dir/Your.app/Contents/Resources/$locale.lproj,您会发现只从源目录中复制了一些xib。

重新启动Xcode将解决这种情况,而我不确定原因是什么以及为什么重新启动可以解决问题。

答案 2 :(得分:3)

这是一个老问题,但我找到了与上述不同的解决方案。在相关的笔尖中,转到标识面板并确保检查笔尖的目标成员资格。

enter image description here

答案 3 :(得分:0)

我有这样的错误。为我解决的是制作xib文件的备份副本,从xcode中删除它,重新启动xcode,然后再添加它。去图......