2

我遇到了这个显示主窗口的 Cocoa 应用程序(源代码)。

只要这个窗口是键,就可以从主菜单打开首选项窗口,也可以通过点击Command-,但是当主窗口不是键并且来自同一个应用程序的另一个窗口是,NSMenuItem 是灰色的并且键盘快捷键没有响应。

我检查了与主菜单关联的 xib 文件,并且 NSMenuItem 正在向openPreferences:(id)sender应该是 NSApplication 的 FirstResponder 发送 IBAction。

我错过了什么(我还是 mac cocoa 编程的新手)?如何修复它以便可以从每个应用程序窗口访问首选项?

4

1 回答 1

2

可能原作者在某些情况下 实现- (BOOL)validateMenuItem:(NSMenuItem *)menuItem并返回。NO

NSMenuValidationProtocol 文档

更新:另一个快速猜测:在您打开第二个窗口后,处理菜单项的 IBAction 的对象可能不再位于响应者链中。NSMenuItems 仅在可以在响应者链中找到操作选择器时启用。

于 2010-11-07T09:16:48.507 回答