源自NSTabViewItem

时间:2010-01-27 07:37:18

标签: cocoa nstabview

我正在写一个Cocoa应用程序。一个对话框有3个选项卡,一些选项卡需要更多的加载时间,所以我想懒得加载它们。由于每个Tab都是一个NSTabViewItem类,所以我试图从它派生并覆盖它的view属性。在视图getter方法中,我使用ViewController加载视图并返回。在调试中,我发现NSTabViewItem -view方法被正确调用,但之后NSTabView尝试设置Initial FirstResponder并崩溃并显示消息:

***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'在 - [NSTabViewItem setInitialFirstResponder:]中,第一个响应者必须从选项卡视图项的视图下降。 (项目:无效的响应者:)'

我试图覆盖-initialFirstResponder方法以返回我加载的视图的子视图,但它仍然在同一个地方崩溃。

有谁知道如何让它正常工作?通过派生NSTabViewItem来实现这一点也是正确的方法吗?

谢谢! -Jonny

1 个答案:

答案 0 :(得分:0)

好的,我现在理解这个例外。 NSTabViewItem有其视图,因此我应该使用其视图并将我的新视图添加为子视图,例如:

-(NSView*)view {
   NSView* view = [super view];
   NSVIew* myView = //load view from nib
   [view addSubView:myView];
   return view;
}