Нажатие клавиш модификатора захвата (Control, Alt, Shift или CMD) - PullRequest
5 голосов
/ 05 апреля 2011

Я знаю, как обнаружить нажатие клавиши.Все клавиши, кроме Control, Alt, Shift и CMD.

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

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 05 апреля 2011

Если вы хотите обнаружить эти ключи в чем-то похожем на объект NSView, взгляните на класс NSResponder.Когда вы перезаписываете класс NSView (или один из его подклассов), вы можете перезаписать keyDown:(NSEvent *)theEvent (документация Apple) .Когда вы вызываете [theEvent modifierFlags], возвращается битовое поле NSUInteger, которое вы затем можете оценить.

Например, с помощью

<code>if ([theEvent modifierFlags] & NSCommandKeyMask) {
   ...
}
вы можете проверить, нажата ли клавиша Command.

См. руководство Apple по обработке событий *1016*, особенно разделОбработка ключевых событий »для получения дополнительной информации.

3 голосов
/ 25 августа 2014

в

- (void) flagsChanged: (NSEvent *)theEvent

[theEvent keyCode] дает число для CRTL, SHIFT, ALT и т. Д., Поэтому вам нужно только переключить переменную для этих модификаторов, установив значение 0 при запуске.

если вы используете OpenGL, вам может потребоваться установить:

-(BOOL) canBecomeKeyWindow
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...