Это сложная вещь, чтобы понять. Это сильно зависит от раскладки клавиатуры и, возможно, других вещей. Несколько статей об этом исчезли из Интернета за последний год или две.
Единственное место, где мне удалось найти список кодов ключей в официальных документах, находится в (Питер Хоси также опубликовал небольшую статью об этом ), Другая вещь о них - то, что есть набор, который зависит от устройства и набор, который не является. Например, VK_ANSI_A
соответствует только символу 'A' на клавиатуре США; с другой стороны, kVK_LeftArrow
должно быть одинаковым на любой клавиатуре Apple.
Другие «функциональные» клавиши аналогичны. Однако, насколько я могу судить, коды клавиш, которые наиболее точно соответствуют символам и, следовательно, меняют свое значение в зависимости от раскладки клавиатуры, на самом деле постоянны относительно местоположения. Я не уверен, что это понятно ... Я считаю, что это тот случай, когда код клавиши для буквенной клавиши в левом нижнем углу любой клавиатуры Apple равен VK_ANSI_Z
, но я не совсем уверен.
У Аллана Одгаарда есть статья об обручах, через которые он должен был прыгнуть, чтобы расшифровать нажатия клавиш: http://sigpipe.macromates.com/2005/09/24/deciphering-an-nsevent Он дает код для эвристических методов, которые он в итоге использовал.