Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将字符转换为cocoa或carbon格式的键代码_Objective C_Macos_Cocoa_Macos Carbon - Fatal编程技术网

Objective c 将字符转换为cocoa或carbon格式的键代码

Objective c 将字符转换为cocoa或carbon格式的键代码,objective-c,macos,cocoa,macos-carbon,Objective C,Macos,Cocoa,Macos Carbon,如何将一个字符(或一个字母NSString)转换为相应的键代码,并使用当前选择的带有cocoa或carbon的键盘布局生成该字符?这是一个很难理解的问题。这在很大程度上取决于键盘布局和其他因素。在过去一两年里,有几篇关于它的文章从网上消失了 我能在官方文件中找到关键代码列表的唯一地方是在(Peter Hosey也有),关于它们的另一件事是有一组依赖于设备,另一组不依赖于设备。例如,VK_ANSI_A仅对应于美国键盘上的字符“A”;另一方面,kVK_LeftArrow在任何苹果键盘上都应该是相同的

如何将一个字符(或一个字母NSString)转换为相应的键代码,并使用当前选择的带有cocoa或carbon的键盘布局生成该字符?

这是一个很难理解的问题。这在很大程度上取决于键盘布局和其他因素。在过去一两年里,有几篇关于它的文章从网上消失了

我能在官方文件中找到关键代码列表的唯一地方是在(Peter Hosey也有),关于它们的另一件事是有一组依赖于设备,另一组不依赖于设备。例如,
VK_ANSI_A
仅对应于美国键盘上的字符“A”;另一方面,
kVK_LeftArrow
在任何苹果键盘上都应该是相同的

其他“功能”键类似。然而,据我所知,最直接对应于字符的键代码,因此根据键盘布局改变其值,实际上就位置而言是恒定的。我不确定这是否清楚……我认为苹果键盘左下角字母键的键码是
VK_ANSI_Z
,但我不确定


Allan Odgaard有一篇文章讲述了他在破解按键时必须跳出的圈套:他给出了他最终使用的启发式方法的代码。

你可能无法可靠地做到这一点,因为这不是1:1的关系,例如,有些字符可能由多个键生成,例如数字0-9。可能的重复:今天仍然是这样吗?我试图破译钥匙码,如果它是媒体钥匙的话。我为nskeydown事件添加了一个本地监视器。