Objective c 将字符转换为cocoa或carbon格式的键代码
如何将一个字符(或一个字母NSString)转换为相应的键代码,并使用当前选择的带有cocoa或carbon的键盘布局生成该字符?这是一个很难理解的问题。这在很大程度上取决于键盘布局和其他因素。在过去一两年里,有几篇关于它的文章从网上消失了 我能在官方文件中找到关键代码列表的唯一地方是在(Peter Hosey也有),关于它们的另一件事是有一组依赖于设备,另一组不依赖于设备。例如,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在任何苹果键盘上都应该是相同的
VK_ANSI_A
仅对应于美国键盘上的字符“A”;另一方面,kVK_LeftArrow
在任何苹果键盘上都应该是相同的
其他“功能”键类似。然而,据我所知,最直接对应于字符的键代码,因此根据键盘布局改变其值,实际上就位置而言是恒定的。我不确定这是否清楚……我认为苹果键盘左下角字母键的键码是VK_ANSI_Z
,但我不确定
Allan Odgaard有一篇文章讲述了他在破解按键时必须跳出的圈套:他给出了他最终使用的启发式方法的代码。你可能无法可靠地做到这一点,因为这不是1:1的关系,例如,有些字符可能由多个键生成,例如数字0-9。可能的重复:今天仍然是这样吗?我试图破译钥匙码,如果它是媒体钥匙的话。我为nskeydown事件添加了一个本地监视器。