当程序在托盘中时,是否可以在任何地方以编程方式更改键盘输入?例子。当用户在谷歌浏览器中输入文本时,我的程序会捕获用户输入的键,并将其更改为另一种符号(另一种语言)?
A -> ❤
B -> 웃
C -> ✄
etc.
可能吗?如果答案是肯定的,那怎么办?
当程序在托盘中时,是否可以在任何地方以编程方式更改键盘输入?例子。当用户在谷歌浏览器中输入文本时,我的程序会捕获用户输入的键,并将其更改为另一种符号(另一种语言)?
A -> ❤
B -> 웃
C -> ✄
etc.
可能吗?如果答案是肯定的,那怎么办?
This sounds like a job for a custom keyboard layout.
After installing your keyboard layout, the user need only enable it in the “Language & Text” preference pane and then select it in the Input menu extra.
It's also possible to enable and select an input source (keyboard layouts being a kind of input source) programmatically.
您可以通过多种方式做到这一点。您可以捕获 NSEvent 关键事件并更改它们。您可以覆盖 keyDown: 在您自己的视图子类中。和更多。
首先阅读 Cocoa 文本系统 https://developer.apple.com/library/mac/documentation/TextFonts/Conceptual/CocoaTextArchitecture/Introduction/Introduction.html
您可以使用Quartz 事件抽头首先接收所有关键事件并在允许它们被处理之前对其进行修改(或完全替换不同的事件)。请注意,用户必须在通用访问首选项中启用辅助设备访问,才能让事件点击查看键盘事件。
您可以创建、安装并让用户选择自定义键盘布局。您可以使用第三方Ukelele程序来创建和修改键盘布局。这不一定涉及代码。它只是一个用于将关键代码转换为字符的大型状态机。
您也可以通过实现输入法来完成类似的事情。请参阅输入法工具包。