无法将 xib 文件添加到目标成员
can't add xib file to target membership
我正在尝试将自定义 window 作为 .xib 文件添加到我现有的 OSX 项目中。当我添加 xib 文件时,我确保在 "Add to targets"
中检查了目标
但是,当我查看 xib 文件的 属性 时,它显示它不是所需目标组的一部分
The target isn't checked
然后我在构建阶段实验性地将 xib 文件添加到 "Copy Files" 中。现在 xib 文件的 属性 看起来有点不同,目标被选中但变灰了。
Checked but grayed out target group
现在,当我尝试访问 xib 文件时,例如,使用
bool suc = [[NSBundle mainBundle] loadNibNamed:@"GiphyDialog" owner:nil topLevelObjects:nil];
它总是 returns 错误。
或者如果我尝试使用 window 控制器加载 xib 文件:
[[Windowcontroller alloc ]initWithWindowNibName:@"GiphyDialog"];
NSWindow* win = windowController.window;
即使文件的所有者和 window 参考配置正确(在一个全新的项目中成功测试),我总是无法加载 window 并显示消息 "failed to load window nib file 'GiphyDialog'."
如何将 xib 文件正确添加到所需的目标?真的很奇怪,对于一个新创建的项目,我向目标添加 xib 文件没有问题,但是对于这个项目,它根本不起作用。我错过了什么?
Xibs 必须添加到 Copy Bundle Resources,而不是 Copy Files。
所以我设法找出问题所在。在我的 XCode 项目中,Build Phases 下没有 Copy Bundle Resources。但我可以通过单击 Build Phases 左上角的 + 按钮来添加它。将 xib 文件添加到 Copy Bundle Resources 然后解决我的问题。
我正在尝试将自定义 window 作为 .xib 文件添加到我现有的 OSX 项目中。当我添加 xib 文件时,我确保在 "Add to targets"
中检查了目标但是,当我查看 xib 文件的 属性 时,它显示它不是所需目标组的一部分
The target isn't checked
然后我在构建阶段实验性地将 xib 文件添加到 "Copy Files" 中。现在 xib 文件的 属性 看起来有点不同,目标被选中但变灰了。
Checked but grayed out target group
现在,当我尝试访问 xib 文件时,例如,使用
bool suc = [[NSBundle mainBundle] loadNibNamed:@"GiphyDialog" owner:nil topLevelObjects:nil];
它总是 returns 错误。
或者如果我尝试使用 window 控制器加载 xib 文件:
[[Windowcontroller alloc ]initWithWindowNibName:@"GiphyDialog"];
NSWindow* win = windowController.window;
即使文件的所有者和 window 参考配置正确(在一个全新的项目中成功测试),我总是无法加载 window 并显示消息 "failed to load window nib file 'GiphyDialog'."
如何将 xib 文件正确添加到所需的目标?真的很奇怪,对于一个新创建的项目,我向目标添加 xib 文件没有问题,但是对于这个项目,它根本不起作用。我错过了什么?
Xibs 必须添加到 Copy Bundle Resources,而不是 Copy Files。
所以我设法找出问题所在。在我的 XCode 项目中,Build Phases 下没有 Copy Bundle Resources。但我可以通过单击 Build Phases 左上角的 + 按钮来添加它。将 xib 文件添加到 Copy Bundle Resources 然后解决我的问题。