当程序在托盘中时,是否有可能在任何地方以编程方式更改键盘输入? 示例。 当用户在Google Chrome中键入文本时,我的程序会捕获用户键入的键,并将其更改为另一种语言的其他符号?如何制作我自己的键盘布局?
A -> ❤
B -> 웃
C -> ✄
etc.
这可能吗?如果答案是YES,那么如何?
当程序在托盘中时,是否有可能在任何地方以编程方式更改键盘输入? 示例。 当用户在Google Chrome中键入文本时,我的程序会捕获用户键入的键,并将其更改为另一种语言的其他符号?如何制作我自己的键盘布局?
A -> ❤
B -> 웃
C -> ✄
etc.
这可能吗?如果答案是YES,那么如何?
您可以通过多种方式来做到这一点。 您可以捕获NSEvent关键事件并进行更改。 你可以在你自己的视图子类中重写keyDown: 等等。
您可以使用Quartz event taps先接收所有关键事件,并对其进行修改,允许他们之前阅读了要处理(或替代不同的事件完全)。请注意,用户必须启用通用访问偏好设置中的辅助设备才能访问,以便事件点击查看键盘事件。
您可以创建,安装并让用户选择自定义键盘布局。您可以使用第三方Ukelele程序来创建和修改键盘布局。这不涉及代码,必然。它只是一个将键码翻译成字符的大型机器。
您也可以通过实现输入法来完成类似的操作。请参阅Input Method Kit。
这听起来像是一个custom keyboard layout的工作。
安装键盘布局后,用户只需在“语言&文本”首选项窗格中启用它,然后在“输入”菜单中选择它。
也可以通过编程的方式enable和select an input source(键盘布局是一种输入源)。
使用短语“这听起来像是一份工作”+1:D哦,是的,'自定义键盘布局'是一个好主意太。 (你完成了这项工作,自定义键盘布局!) –
那么,这就是文本扩展应用程序所做的,所以我想这是可能的。也许你可以看看一个开源的文本扩展器的源代码,看看它是如何工作的? –
这可能是有帮助的:http://stackoverflow.com/a/10369044/227536 – Regexident