内置函数,用于在Cocoa中转换unicode字符和虚拟键码?

时间:2010-09-28 18:01:58

标签: iphone cocoa ipad unicode keycode

有没有办法将unicode字符转换为Mac虚拟键码? (没有构建我自己的表?)看起来在Windows上有VkKeyScanEx,但我不知道OS X上的Cocoa有类似的功能。

我实际上是想为iPad做这件事。我想转换从键盘中取出的字符并将其转换为键码,因为iPad键盘不提供键码。

2 个答案:

答案 0 :(得分:0)

GoogleCode上的ShortcutRecorder项目converting strings to keycodes and vice versa有一个NSValueTransformer子类,但我不确定它是否适用于iOS。不过,这是一个开始寻找的好地方。

答案 1 :(得分:0)

我对它需要被标记为iPhone / iPad的原因感兴趣 - 当然你可以在OS X中进行所有转换吗?此外,iPhone / iPad“键盘”基本上是一种文本输入法(参见UITextInput) - 并不是说​​它“不会提供密钥代码”;根本就没有(当你点击“A”时,它应该提供什么键码/修饰符,保持一点,并选择一个随机的重音版本?)。

如果您要这样做,请在iPad和OS X上的各种(奇数)输入法上进行测试。如果有插入字符串的API,请执行此操作(但这可能效果不是很好)对于读取扫描码的游戏......)。您甚至可以编写一个接受Unicode字符串的自定义输入法扩展名。

当Dvorak VNC客户端输入QWERTY VNC服务器时会发生什么事情值得商榷......


我将以一个相切的故事结束:

一年多前(在我拿到iPhone之前),我买了一台N810。如果有的话,它会产生一个不错的SSH / VNC客户端,并且有一个不错的键盘。

除非它不是标准键盘。 1是Fn-Q和!是Fn-A,但当我输入Fn-A得到“!”时,VNC服务器最终输入“1”。键入Shift-Fn-A给我“!”我一直在寻找(我认为Shift-Fn-Q也有效)。

某处,某处,解析字符“!”,确定它具有与“1”相同的扫描码,并将扫描码输入为1而不使用修饰符。它可以自动按住Shift。它甚至可以插入一个字符串。相反,它只是失败。