2011-09-02 73 views

回答

1

我不确定是否有,可悲。 CGEventNSEvent(它们不是免费桥接,但NSEvent可以来回转换)是事件的标准容器,包括按键,因此可以从设备相关的扫描代码转换为unicode字符串序列,但似乎无法走向另一个方向 - 从unicode字符到所需的与设备相关的按键顺序。

有一个简短的评论下面CGEventCreateKeyboardEvent是:

生成字符所需的所有的击键必须输入, 包括修改键。例如,要产生一个“Z”,Shift键 一定要下来,“Z”键必须往下走,然后SHIFT和“Z”键 必须被释放:

但序列然后显示了shift和z键的硬编码和无法解释的常量。

1

UCKeyTranslate()

+1

这不仅仅是从虚拟键码转换为unicode字符串吗? – CD1212

+0

据我所知,这种区别是Windows特有的坏术语,“虚拟扫描码”是未虚拟化的键码。在Mac OS X中,我不知道你会从哪里获得“虚拟扫描代码”。可能你正在处理HID用法,在这种情况下,我的[KeyNaming]中的'kHID2VKC'表(https:// github.com/Ahruman/KeyNaming/blob/master/KeyNaming.c)库可能是感兴趣的。 –