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

Dar*_*ski 4 macos cocoa objective-c

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

myWindow = [[MyWindowController alloc] initWithWindowNibName:@"MyWindow" owner:self];
[myWindow showWindow:self];
Run Code Online (Sandbox Code Playgroud)

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

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

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

kdb*_*las 8

我重新启动了Xcode,错误消失了......

我不知道......但无论如何......


uas*_*asi 6

initWithWindowNibName: 可以在本地化目录中找到.nib文件,例如en.lproj/.问题是,有时Xcode忘记将.xib文件(XML格式的Interface Builder文件,你经常使用它)编译.nib文件或二进制格式 - 特别是当.xib文件只是通过点击本地化时"本地化..."按钮.

如果打开,$build_dir/Your.app/Contents/Resources/$locale.lproj您将找到仅从源目录复制的一些xib.

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