如何获得"名称"一个CGKeyCode?

时间:2015-03-03 15:30:03

标签: macos swift cgkeycode

我需要以用户可读的方式显示CGKeyCode 这是一个例子:

对于字符和字母:

0  -> "a"
18 -> "1"

对于特定密钥:

49 -> "Space"
83 -> "Numpad 1"
80 -> "F19"

根据键盘布局,名称必须更改。密钥代码仅指定密钥位置,与其字符无关。例如,密钥代码16在QWERTY键盘上将为“y”,而在QWERTZ键盘上为“z”。

由于这应该是一个常见的问题,并且在OS X中用于分配键盘快捷键,我想知道在功能性或库中是否有任何构建可以用来做到这一点吗?

手动编写每个键盘布局的switch-case语句似乎是一项艰巨的任务......

我在Carbon中的events.h中发现了两个枚举 一个用于具有通用名称的keyCodes,它们独立于键盘布局,另一个用于ANSI标准美国键盘上的键盘布局特定名称。
这些名称遵循kVK_F19kVK_ANSI_RightBracket的命名惯例。但是,我只能使用带有美式键盘布局的名称,并且F19Right Bracket更简单,名称会更好。

0 个答案:

没有答案