0

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

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

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

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

谢谢!-强尼

4

1 回答 1

0

好的,我现在理解异常了。有它的NSTabViewItem视图,所以我应该使用它的视图并将我的新视图添加为子视图,例如:

-(NSView*)view {
   NSView* view = [super view];
   NSVIew* myView = //load view from nib
   [view addSubView:myView];
   return view;
}
于 2010-01-27T07:51:59.920 回答