Во-первых, keyDown:
- это сообщение о событии, а не сообщение о действии. Обратите внимание, что его аргументом является NSEvent, а не какой-либо объект пользовательского интерфейса (например, NSControl или NSMenuItem).
Сообщения действий идут по цепочке респондента, и в этом случае «первый респондент» не является особенным. Каждый респондент передает любое сообщение о действиях, которое он не знает, как обработать, своему следующему респонденту. Это «цепочка респондента». Первый респондент - это просто тот, кто отвечает во главе цепочки респондента, то есть первым. Вам просто нужно быть в этой цепочке, позади всего, что не знает, как реагировать на действие, передаваемое по ней.
Но так как это событие , все по-другому. Вы должны быть key view , , который является первым респондентом .
И это все, что нужно сделать. Вам необходимо ответить на сообщение keyDown:
(и, возможно, связанные) в представлении, и это представление должно быть первым респондентом, получившим сообщение.
Справочник по классам NSResponder и Руководство по обработке событий Cocoa расскажет вам больше.