Преобразовать символ в код ключа в какао или углероде - PullRequest
2 голосов
/ 11 октября 2011

Как мне преобразовать символ (или одну букву NSString) в соответствующий код клавиши, который бы сгенерировал его, используя текущую выбранную раскладку клавиатуры с какао или углеродом?

1 Ответ

5 голосов
/ 11 октября 2011

Это сложная вещь, чтобы понять. Это сильно зависит от раскладки клавиатуры и, возможно, других вещей. Несколько статей об этом исчезли из Интернета за последний год или две.

Единственное место, где мне удалось найти список кодов ключей в официальных документах, находится в (Питер Хоси также опубликовал небольшую статью об этом ), Другая вещь о них - то, что есть набор, который зависит от устройства и набор, который не является. Например, VK_ANSI_A соответствует только символу 'A' на клавиатуре США; с другой стороны, kVK_LeftArrow должно быть одинаковым на любой клавиатуре Apple.

Другие «функциональные» клавиши аналогичны. Однако, насколько я могу судить, коды клавиш, которые наиболее точно соответствуют символам и, следовательно, меняют свое значение в зависимости от раскладки клавиатуры, на самом деле постоянны относительно местоположения. Я не уверен, что это понятно ... Я считаю, что это тот случай, когда код клавиши для буквенной клавиши в левом нижнем углу любой клавиатуры Apple равен VK_ANSI_Z, но я не совсем уверен.

У Аллана Одгаарда есть статья об обручах, через которые он должен был прыгнуть, чтобы расшифровать нажатия клавиш: http://sigpipe.macromates.com/2005/09/24/deciphering-an-nsevent Он дает код для эвристических методов, которые он в итоге использовал.

...