Подтвердить что ты не робот

Где я могу найти список кодов клавиш для использования с классом Cocoa NSEvent?

Я ищу полный список доступных кодов клавиш, которые можно использовать с классом Cocoa NSEvent. Класс NSEvent имеет свойство keyCode, которое определяется как unsigned short. Следующий код, размещенный в соответствующем объекте пользовательского интерфейса, будет эхом кодов клавиш при нажатии:

- (void)keyDown:(NSEvent *)theEvent
{
    NSLog(@"%d", [theEvent keyCode]);
}

Из этого кода я могу легко видеть, какие коды соответствуют определенным ключам, но я хотел бы найти официальный документ где-нибудь, в котором перечислены все из них. Я ожидал, что у Apple будет файл заголовка, который выглядит так:

enum {
    ...
    NSKeyCodeLeftArrow = 123,
    NSKeyCodeRightArrow = 124,
    ...
};

Но если он есть, я еще не нашел его.

4b9b3361

Ответ 1

Насколько я знаю, нет перечисления или списка кодов клавиш. Однако, чтобы получить подобное поведение, вы можете вызвать interpretKeyEvents: в keyDown: это вызовет соответствующие методы действий, все из которых задокументированы в NSResponder (например, moveLeft:, insertTab: и т.д..)

Ответ 2

Здесь вы идете. Это карта всех виртуальных кодов клавиш на расширенной раскладке клавиатуры Microsoft, начиная с старого Inside Macintosh: Text, Большинство ключевых кодов по-прежнему в настоящее время, хотя я подозреваю, что самые новейшие клавиатуры Apple - с медиа-ключами - возможно, изменили некоторые функциональные клавиши.

Примечание: ISO и не расширенные клавиатуры могут иметь разные коды клавиш для некоторых клавиш. Если у вас есть такая клавиатура, попробуйте приложение Питера Маурера Кодов. Его сайт не работает, поэтому здесь моя копия.

Ответ 3

Чтобы включить HIToolbox/Events.h(как указано в ответе berrange) в XCode 4, вам просто нужно перейти в Link Binaries с библиотеками и добавить каркас Carbon (который включает HIToolbox), а затем импортировать основной заголовок Carbon в файл где вы проверяете keyCodes.

#import <Carbon/Carbon.h>

Мне потребовалось секунду, чтобы понять, что я не могу напрямую импортировать HIToolbox/Events.h, поэтому я решил опубликовать это, если это кому-то поможет.

Ответ 4

Согласно этой теме форума, константы доступны в HIToolbox/Events.h

http://forums.macrumors.com/showthread.php?t=780577

Они удобно копируют + вставляют весь набор констант в форум. В противном случае заголовок доступен здесь:

/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h