简短回答在标题内:)
解释:在我的MainMenu.xib
我只有应用程序的主菜单,对于我打开的所有NSWindow
,它必须相同。我要说的是,有一个特定的NSWindowController
有关于何时必须启用菜单项的所有答案(通过case
中的selector
上的validateUserInterfaceItem
}以及该怎么做一切行动。如果与NSWindow
关联的NSWindowController
目前正在关注,则没有问题,但当我专注于另一个NSWindow
时,所有菜单都会显示为灰色。
我现在有了这个流程:MainMenu
是通过引用info.plist
作为主nib创建的,然后AppDelegate
执行一些初始化内容并使用{{创建MainWinController
1}},在某个时刻MainWindow
创建1 + MainWinController
DetailsWinController
。 DetailsWindow
通过调用AppDelegate
的每次函数来管理我的自定义菜单。
那么,我如何强制响应者链始终查询特定的MainWinController
(NSWindowController
)?
答案 0 :(得分:0)
你没有提供很多细节,也不清楚你想要实现的目标。
我的第一反应是,如果你想共享菜单项,你为什么要在MainWindow中创建多个窗口而不是视图?
假设您的MainWindow和DetailsWindow都实现相同的选择器,您可以将菜单操作定向到第一响应者
要在InterfaceBuilder中添加DetailsWinController,请从对象库中拖动NSObject,然后在Identity Inspector中将其类更改为DetailsWinController类。
如果您的主菜单包含DetailsWindow的不同项目,只需将这些项目连接到该实例中的操作。
注意如果您这样做,则不应在代码中创建DetailsWinController。 如果您真的想在代码中执行此操作,则需要在代码中向菜单添加操作和目标。