Как я могу обнаружить нажатия клавиш, используя цель c? - PullRequest
1 голос
/ 29 июня 2010

Просто интересно, как я могу обнаружить различные нажатия клавиш, а затем определить, какая клавиша была нажата, я пытался использовать это, -(void)keyDown:(NSEvent *)event, но, похоже, не дал никаких результатов.Я тоже обыскал, но ничего не нашел.Я предполагаю, что мне может понадобиться настроить что-то в конструкторе интерфейсов для обнаружения нажатий клавиш?Я также думаю, что это имеет отношение к тому, что выбрано, если это текстовое поле.

Ответы [ 2 ]

1 голос
/ 29 июня 2010

keyDown: метод вызывается только для определенного представления и его подпредставлений, я думаю. Если вам нужно все нажатия клавиш для вашего приложения - проверьте NSEvent метод класса:

+ (id)addLocalMonitorForEventsMatchingMask:(NSEventMask)mask 
                                   handler:(NSEvent* (^)(NSEvent*))block

Прочтите в ней документацию XCode. Я полагаю, вы на снежном барсе.

0 голосов
/ 01 июля 2010

Я пытался использовать это, - (void) событие keyDown: (NSEvent *), но, похоже, не дало никаких результатов.

Что значит «использовать» его?

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

В зависимости от того, что делает нажатие клавиши, он может подходить для одногопользовательский вид для обработки;если нет, вероятно, это должен быть оконный контроллер, который его обрабатывает.Любой из них должен быть уже в цепочке респондента в подходящее время.Какой бы путь вы ни выбрали, вам нужно создать подкласс NSView (для пользовательского представления) или NSWindowController.

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