无法将xib文件添加到目标成员资格

时间:2017-04-19 14:33:21

标签: objective-c xcode macos xib

我正在尝试将自定义窗口作为.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文件添加到目标没有问题,但是对于这个项目,它根本不起作用。我错过了什么?

2 个答案:

答案 0 :(得分:0)

必须将Xib添加到Copy Bundle Resources,而不是Copy Files。

答案 1 :(得分:0)

所以我设法找出问题所在。在我的XCode项目中,构建阶段下没有复制捆绑资源。但我可以点击构建阶段左上角的+按钮添加它。将xib文件添加到复制捆绑包资源,然后解决我的问题。