Из Руководства по обработке событий Какао - Цепочка респондента :
Цепочка респондента представляет собой связанную серию объектов респондента, к которым применяется сообщение о событии или действии. Когда данный объект респондента не обрабатывает конкретное сообщение, объект передает сообщение своему преемнику в цепочке (то есть своему следующему респонденту).
Когда вы нажимаете клавишу, окно получает событие keyDown. Затем он отправляет событие первому респонденту , который обычно представляет собой элемент управления с синей рамкой вокруг границы (попробуйте щелкнуть поле адреса в Safari или Firefox, когда оно синего цвета, а затем сначала -ответчик).
Если первый респондент не ест нажатие клавиши (поле адреса Safari действительно съедает его, когда отображается символ), то он передает его по цепочке респондента на следующий респондент в иерархии представления, затем к окну и к контроллеру окна, как вы можете видеть в Guide . (Позаботьтесь о том, чтобы ответчик был другой историей.)
Таким образом, вы должны реализовать keyDown: в представлении вашего окна или в самом окне, если у него нет представлений, которые питаются событиями. Самый простой способ проверить это переопределить keyDown: метод пустого окна
Чтобы поместить ваши руки во внутреннюю работу, вы даже можете попробовать переопределить метод sendEvent: окна. sendEvent: отправляет события в представления окна, и оттуда вы можете, например, регистрировать все события, управляемые окном.