(这不是关于 KVC/KVO 和键值绑定的问题。)
我正在编写一个带有“工具”面板的应用程序。每个工具都可以使用一个字母键选择(如“M”-“移动工具”)。即使没有主窗口并且没有选择工具面板(不是“键”),也可以选择工具。
文档说原始键事件不会传播到应用程序委托和文档控制器(所以我不能依赖 onKeyDown,因为它应该发生在 WindowController 中)。但是“动作事件”(绑定到选择器的键)被发送到应用程序、应用程序委托和文档控制器。
我知道设置此类全局绑定的两种方法:通过 Interface Builder 中的 NSMenuItem 键等效项或使用 ~/Library/KeyBindings/DefaultKeyBinding.dict 文件(指定所有应用程序的全局绑定)。
菜单项方法不好,因为我不想用可以从工具面板触发的命令污染我的菜单。
我想以编程方式设置此类绑定或在捆绑的 KeyBindings.dict 中指定它们,就像 Xcode 和 TextMate 一样。
但是,我找不到如何命名此类 dict 文件以及如何将其连接到应用程序的文档或示例。Xcode 使用 PBKeyBinding.dict 文件名,TextMate 使用 KeyBindings.dict。Info.plist 没有选项告诉应用程序读取 dict 文件。
有谁知道如何做到这一点?
谢谢。