当程序在托盘中时,是否可以以编程方式在任何地方更改键盘输入? 例。 当用户在Google Chrome中键入文字时,我的程序会抓住用户输入的密钥,并将其更改为其他符号(使用其他语言)?
A -> ❤
B -> 웃
C -> ✄
etc.
有可能吗?如果回答是“是”,那该怎么办?
答案 0 :(得分:1)
这听起来像是custom keyboard layout的工作。
安装键盘布局后,用户只需在“语言和功能”中启用它。文本“偏好设置面板,然后在输入菜单中选择它。
也可以通过编程方式enable和select an input source(键盘布局是一种输入源)。
答案 1 :(得分:0)
您可以通过多种方式实现这一目标。 您可以捕获NSEvent密钥事件并更改它们。 您可以在自己的视图子类中覆盖keyDown :. 和更多。
首先阅读Cocoa Text System https://developer.apple.com/library/mac/documentation/TextFonts/Conceptual/CocoaTextArchitecture/Introduction/Introduction.html
答案 2 :(得分:0)
您可以先使用Quartz event taps接收所有关键事件,然后在允许处理它们之前修改它们(或完全替换不同的事件)。请注意,用户必须启用Universal Access首选项中辅助设备的访问权限,才能使事件点击能够查看键盘事件。
您可以创建,安装并让用户选择自定义键盘布局。您可以使用第三方Ukelele程序来创建和修改键盘布局。这不一定涉及代码。它只是一个用于将密钥代码转换为字符的大型状态机。
你也可以通过实现输入法来完成这样的事情。请参阅Input Method Kit。