某些关键等价物不能用于NSMenuItem

时间:2011-07-29 19:23:10

标签: cocoa macos nsmenuitem

我有一个NSMenuItem,我想使用等效的密钥Command-Option-C。但是,当我在IB中设置等效键时,在实际运行应用程序时它不会与菜单项相关联。该条目没有可见的等效键,并且该命令不会调用该项。其他关键的等价物,如Shift-Control-C,确实有效。我尝试使用的那个与应用程序中的任何其他等效键不冲突。

什么可能导致这个看似随机的问题?

3 个答案:

答案 0 :(得分:1)

有问题的菜单项是否可能是“特殊”菜单项,可能会在系统启动时被替换?如果是这样,了解您是否能够在不同的,可能不太有趣的菜单项上设置相同的键盘快捷键会很有帮助。

我真的没有权威的理解哪些菜单项可以得到这种处理,但怀疑例如可能是“帮助”菜单,“应用程序”菜单或许多应用程序中常见的其他菜单项动态调整甚至重新生成,改变你在笔尖中指定的内容。

我最先拍摄的最简单的解决方法是在nib加载后直接从代码调用setKeyEquvialent:菜单时间。如果您已经尝试过,我无法从您的Twitter摘要中得知,它也失败了。

答案 1 :(得分:0)

Command-Option-C在这里工作得很好。是否可以在键盘系统首选项中设置使用相同组合键的自定义键盘快捷键?这将覆盖应用程序自己的快捷方式。

答案 2 :(得分:0)

  1. 检查菜单项上的标记。如果设置为某些值,可能会使Cocoa重写内容
  2. 检查您的系统Prefs不会覆盖键绑定
  3. 检查菜单层次结构中其他位置尚未存在的键绑定,尤其是在编辑菜单中