你好,我有一个带有多个窗口和视图的OS X应用程序。 现在我想重构一些代码,并试图通过我使用follong方法生成的xib文件加载我的自定义viewcontroller:
TestViewController* tableViewController =
[[TestViewController alloc] initWithNibName:@"TestView" bundle:nil];
TestViewController是NSViewController的子类。在这一点上一切都很好,(我希望)因为我看到没有例外。
为了更多地了解我的代码,以下是抛出错误的部分:
if (tableViewController != nil)
{
myCurrentViewController = tableViewController;
[myCurrentViewController setTitle:@"TestView"];
}
[[self window] setContentSize:[smallView frame].size];
[[[self window] contentView] addSubview:[myCurrentViewController view]]; //here is the error
我已经尝试过检查文件所有者,主界面是MainMenu ......
答案 0 :(得分:1)
最后我找到了解决问题的方法。
我的带有Xib的ViewController由XCode生成,所有文件都具有相同的名称模式,如TestViewController.h,TestViewController.m和TestViewController.xib。
我发现的所有示例都使用“TestView”引用了xib文件,因此我认为xcode通过添加“xib”名称结尾的“Controller”来匹配正确的viewcontroller及其视图。
在我的情况下,我必须将我的xib文件从TestViewController.xib重命名为TestView.xib,我可以使用@“TestView”加载它。
H个