【问题标题】:OS X Cocoa - Translate Virtual Scan Code to and from CharOS X Cocoa - 将虚拟扫描代码与 Char 相互转换
【发布时间】:2011-09-02 19:31:10
【问题描述】:

是否有可可/碳等效于 Windows 上的 VkKeyScan 和 ToUnicode 函数,用于在虚拟扫描码和 unicode 字符串之间进行转换?我也想反之亦然执行此转换(从字符到扫描码)。

【问题讨论】:

    标签: cocoa keyboard macos-carbon scancodes


    【解决方案1】:

    很遗憾,我不确定是否存在。 CGEventNSEvent(不是免费桥接的,但 NSEvent 可以来回转换)是包括按键在内的事件的标准容器,因此可以从设备相关的扫描码转换为 unicode字符串序列,但似乎没有办法朝另一个方向发展——从 unicode 字符到所需的设备相关按键序列。

    CGEventCreateKeyboardEvent 下面有一条简短的评论:

    必须输入生成字符所需的所有击键, 包括修饰键。例如,要生成“Z”,请使用 SHIFT 键 必须按下,'z' 键必须按下,然后 SHIFT 和 'z' 键 必须释放:

    但随后显示的序列对于 shift 和 z 键具有硬编码和无法解释的常量。

    【讨论】:

      【解决方案2】:

      UCKeyTranslate().

      【讨论】:

      • 那不是只能从虚拟键码转换成unicode字符串吗?
      • 据我所知,这种区别是一个特定于 Windows 的错误术语,“虚拟扫描码”是非虚拟化的键码。我不知道您在 Mac OS X 中从哪里获得“虚拟扫描码”。可能您正在处理 HID 使用,在这种情况下,我的 @ 中的 kHID2VKC 表987654321@图书馆可能会感兴趣。
      • 任何人和我一样来到这里,KeyNaming 库现在是here
      猜你喜欢
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      • 2011-07-20
      • 1970-01-01
      • 2018-09-20
      • 2014-09-28
      相关资源
      最近更新 更多