无法将 xib 文件添加到目标成员资格
Posted
技术标签:
【中文标题】无法将 xib 文件添加到目标成员资格【英文标题】:can't add xib file to target membership 【发布时间】:2017-04-19 14:33:20 【问题描述】:我正在尝试将自定义窗口作为 .xib 文件添加到我现有的 OSX 项目中。当我添加 xib 文件时,我确保在“添加到目标”中选中了目标
但是,当我查看 xib 文件的属性时,它显示它不是所需目标组的一部分
The target isn't checked
然后我在构建阶段实验性地将 xib 文件添加到“复制文件”中。现在 xib 文件的属性看起来有点不同了,目标被选中但显示为灰色。
Checked but grayed out target group
现在当我尝试访问 xib 文件时,例如,使用
bool suc = [[NSBundle mainBundle] loadNibNamed:@"GiphyDialog" owner:nil topLevelObjects:nil];
它总是返回 false。
或者如果我尝试使用窗口控制器加载 xib 文件:
[[Windowcontroller alloc ]initWithWindowNibName:@"GiphyDialog"];
NSWindow* win = windowController.window;
即使正确配置了文件的所有者和窗口引用(在全新项目中成功测试),我总是无法加载窗口并显示消息 “未能加载窗口 nib 文件'GiphyDialog'。”
如何将 xib 文件正确添加到所需的目标?真的很奇怪,有了一个新创建的项目,我将xib文件添加到目标中没有问题,但是有了这个项目,它根本不起作用。我错过了什么?
【问题讨论】:
XIB 的部署目标设置为 10.10。我不知道这是怎么发生的,但它可能会导致问题(参见图片“未检查目标”) @shallowThought 感谢您的回复。我应该如何配置部署目标?其他选项是 macOS 10.x 及更高版本,x 范围从 6 到 12.1。我尝试了不同的选项,但没有改变灰色的问题 我的错误。我认为这是关于 ios 目标的。 也许可以尝试在你的初始化文件名中添加扩展名... 【参考方案1】:Xibs 必须添加到 Copy Bundle Resources,而不是 Copy Files。
【讨论】:
【参考方案2】:所以我设法找出问题所在。在我的 XCode 项目中,Build Phases 下没有Copy Bundle Resources。但是我可以通过点击Build Phases左上角的+按钮来添加它。将 xib 文件添加到 Copy Bundle Resources 然后修复我的问题。
【讨论】:
以上是关于无法将 xib 文件添加到目标成员资格的主要内容,如果未能解决你的问题,请参考以下文章