如何将字符(或一个字母NSString)转换为使用当前选定的可可或碳键盘布局生成它的相应键码?
答案 0 :(得分:5)
要弄清楚这是一件很难的事情。它很大程度上取决于键盘布局和其他可能的东西。在过去的一两年里,有几篇文章在网上消失了。
我能在官方文档中找到关键代码列表的唯一地方是< HIToolbox / Events.h> (Peter Hosey也有posted a short article about this),关于他们的另一件事是,有一套与设备有关的套装和一套不是。例如,VK_ANSI_A
仅对应于字符' A'在美国键盘上;另一方面,任何Apple键盘都应该kVK_LeftArrow
相同。
其他"功能"键是相似的。据我所知,最直接对应于字符的键码,因此根据键盘布局改变它们的值,实际上就位置而言是恒定的。我不确定这是否清楚......我相信,任何Apple键盘左下角的字母键的键代码都是{{{}} 1}},但我不太确定。
艾伦·奥多加(Allan Odgaard)有一篇关于他必须跳过去破解按键的箍的文章:http://sigpipe.macromates.com/2005/09/24/deciphering-an-nsevent他给出了他最终使用的启发式方法的代码。