是否可以在 mac 上用特定于应用程序的键绑定覆盖用户键绑定?
Is it possible to override the user KeyBindings with app-specific ones on a mac?
用户特定的 keyBindings .dict 文件位于:~/Library/KeyBindings/
您(作为开发人员)如何告诉 AppKit
在另一个目录(特定于应用程序)中查找您的特定应用程序的另一个绑定文件。这不需要覆盖用户特定的,因为它可能用于文本操作以外的功能。
这可能有用,原因如下:
- 在不干扰用户的情况下为您的应用更改 keyBindings
他们系统其余部分的设置(特别是你的
对象不一定是文本输入对象)
- 添加
NSResponder
中未找到的其他操作方法
引自 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
.
用户特定的 keyBindings .dict 文件位于:~/Library/KeyBindings/
您(作为开发人员)如何告诉 AppKit
在另一个目录(特定于应用程序)中查找您的特定应用程序的另一个绑定文件。这不需要覆盖用户特定的,因为它可能用于文本操作以外的功能。
这可能有用,原因如下:
- 在不干扰用户的情况下为您的应用更改 keyBindings 他们系统其余部分的设置(特别是你的 对象不一定是文本输入对象)
- 添加
NSResponder
中未找到的其他操作方法
引自 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
.