Прежде всего, вы должны создать подкласс NSWindow.
В xcode сделайте: File -> New File -> Objective C Class.
дать имя, как "NSWindowMyEvents". Это создаст 2 файла: .h & .m, перейдите к NSWindowMyEvents.h и сделайте объявление следующим образом:
@interface NSWindowMyEvents : NSWindow {
}
Сохраните изменения и скомпилируйте (чтобы убедиться, что IB читает новый заголовок 0, если он уже открыт).
Откройте конструктор интерфейса и загрузите файл nib / xib, содержащий ваш документ / главное окно.
Убедитесь, что выход «окна» владельца файла настроен на ваше главное окно.
Щелкните в главном окне (в котором вы хотите получать события) и установите его класс (с помощью инспектора идентификации cmd + 6) следующим: NSWindowMyEvents вместо NSWindow, как сейчас.
Сохранить изменения!
Вернитесь к xcode и NSWindowMyEvents.m и вставьте следующий код:
- (void)keyDown:(NSEvent *)theEvent
{
NSLog(@"keyDown!");
if ([[NSApp currentEvent] modifierFlags] & NSCommandKeyMask)
{
NSLog(@"CommandKey Down!");
}
[super keyDown:theEvent];
}
Отправьте событие супер, если хотите, чтобы передать событие в цепочку респондента остальных.
Теперь вы обрабатываете события клавиатуры.
Точно так же вы можете обработать любое событие в NSWindowMyEvent.m
Надеюсь, это поможет ....