是否可以在 mac 上用特定于应用程序的键绑定覆盖用户键绑定?

Is it possible to override the user KeyBindings with app-specific ones on a mac?

用户特定的 keyBindings .dict 文件位于:~/Library/KeyBindings/

您(作为开发人员)如何告诉 AppKit 在另一个目录(特定于应用程序)中查找您的特定应用程序的另一个绑定文件。这不需要覆盖用户特定的,因为它可能用于文本操作以外的功能。

这可能有用,原因如下:

  1. 在不干扰用户的情况下为您的应用更改 keyBindings 他们系统其余部分的设置(特别是你的 对象不一定是文本输入对象)
  2. 添加 NSResponder
  3. 中未找到的其他操作方法

引自 Cocoa 事件处理开发人员指南(第 68 页)。重点是我的。

It can pass the event to Cocoa’s text input management system by invoking the NSResponder method interpretKeyEvents:. The input management system checks the pressed key against entries in all relevant key-binding dictionaries and, if there is a match, sends a doCommandBySelector: message back to the view. Otherwise, it sends an insertText: message back to the view, and the view implements this method to extract and display the text.

我不相信这是可能的。我认为关于 "all relevant key-binding dictionaries" 的部分只是指 /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict~/Library/KeyBindings/DefaultKeyBinding.dict.