Лучший способ обнаружить клавишу Enter/Return в приложении какао?

в моем приложении какао мне нужно проверить клавишу ввода/возврата. для этого я использую код ниже

if ((event.keyCode == 36) || (event.keyCode == 76) || (event.keyCode == 13))
{
// Some code after checking Enter key
}

может ли кто-нибудь предположить, что это правильный путь или нет? Заранее спасибо :)


person bhavesh    schedule 05.02.2013    source источник
comment
Итак, возврат или ввод или W?   -  person Peter Hosey    schedule 05.02.2013


Ответы (1)


Не совсем правильно - вы путаете коды клавиш с кодами символов. Как отмечает Питер Хози в своем комментарии, 13 – это код клавиши W.

То есть if ((event.keyCode == 36) || (event.keyCode == 76)) проверяет, является ли код клавиши клавишей возврата или ввода.

Если вы хотите проверить код символа, вы можете сделать что-то вроде:

NSString *chars = event.charactersIgnoringModifiers;
unichar aChar = [chars characterAtIndex: 0];
if (aChar == 13 || aChar == 3)

… и вы получите тот же эффект.

person Smilin Brian    schedule 05.02.2013
comment
Это может быть проще в использовании: unichar aChar = [[символы событий, игнорирующие модификаторы] characterAtIndex:0]; вместо первых двух строк кода, если вас не интересует состояние смены или клавиши Apple и т. д. - person Todd; 06.02.2013
comment
Хороший вопрос @Todd - вместо этого отредактировано использование characterIgnoringModifiers. - person Smilin Brian; 07.02.2013
comment
В чем именно разница между кодом клавиши и кодом символа? - person Z S; 17.04.2014
comment
Код клавиши — это физическое расположение клавиши на клавиатуре. Например. на американской клавиатуре QWERTY код клавиши для Y равен 16. На немецкой клавиатуре QWERTZ клавиши Y и Z поменяны местами, поэтому код клавиши 16 соответствует клавише Z, а клавиша Y имеет код клавиши 6. Коды клавиш полезны, если вы заинтересованы, например. WASD вместо клавиш со стрелками. Потому что, например. на французской клавиатуре AZERTY вы хотите использовать ZQSD, чтобы получить такое же физическое расположение. Коды символов OTOH — это фактические символы, напечатанные на колпачках клавиш, независимо от того, где они физически появляются на клавиатуре. - person uliwitness; 18.02.2017