我有一个todo-application,它有一个带有四个NSTabViewItems的NSTabView。每个选项卡视图都有一个视图,其中包含匹配的视图控制器,所有这些视图控我已将每个笔尖的文件所有者设置为视图控制器,并将视图出口设置为各自的视图。
我在视图后修改了响应程序链中的视图控制器,并且还设置了视图控制器nextResponder,以便响应程序链完好无损。我已将编辑菜单项绑定到First Responder操作。问题是当应用程序启动时选择了第一个选项卡,所有编辑菜单项都启用并正常工作。但是,如果我切换到另一个标签项然后回到第一个标签项,所有编辑菜单项都被禁用,我所做的一切都不能再次启用它们。知道发生了什么事吗?
答案 0 :(得分:0)
我的问题的答案是,响应者链在启动后是完整的(View - > MyViewController - > NextResponder),因此菜单项按预期工作。但是当我更改NSTabView上的标签时,标签视图会将相应的NSTabViewItem.view修补到响应者链中,创建View - > NextResponder,因此MyController被排除在链外,菜单命令不再有效。换句话说,当更改选项卡时,NSTabView会重置其视图的nextResponder,从而使控制器脱离响应者链。
我只是让我的控制器子类NSView并将它们设置为每个NSTabViewItem的视图。现在一切正常。