如何制作自己的键盘布局?

时间:2013-06-05 06:39:32

标签: objective-c macos cocoa

当程序在托盘中时,是否可以以编程方式在任何地方更改键盘输入? 例。 当用户在Google Chrome中键入文字时,我的程序会抓住用户输入的密钥,并将其更改为其他符号(使用其他语言)?

A -> ❤
B -> 웃
C -> ✄
etc.

有可能吗?如果回答是“是”,那该怎么办?

3 个答案:

答案 0 :(得分:1)

这听起来像是custom keyboard layout的工作。

安装键盘布局后,用户只需在“语言和功能”中启用它。文本“偏好设置面板,然后在输入菜单中选择它。

也可以通过编程方式enableselect 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