4

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

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

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

-[MyWindowController loadWindow]:未能加载窗口 nib 文件“AuthWindow”。

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

4

4 回答 4

8

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

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

于 2013-06-18T22:16:48.523 回答
6

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

如果你打开$build_dir/Your.app/Contents/Resources/$locale.lproj你会发现一些 xibs 只是从源目录复制的。

重新启动 Xcode 将解决这种情况,但我不确定原因是什么以及为什么重新启动会奏效。

于 2013-08-06T20:17:13.317 回答
3

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

在此处输入图像描述

于 2013-08-17T17:44:28.513 回答
0

我有这样的错误。为我解决的问题是制作 xib 文件的备份副本,将其从 xcode 中删除,重新启动 xcode,然后将其添加回来。去搞清楚...

于 2015-01-30T13:41:45.717 回答