2011-12-28 4 views
0

У меня есть NSViewController, который я вручную поместить в респондеров цепи по телефонуtryToPerform: с: не вызывается, когда KeyDown: вызывается

self.nextResponder = self.view.nextResponder; 
self.view.nextResponder = self; 

Когда пользователь нажимает клавиши внутри вида, я могу для успешного получения сообщений keyDown:. Однако по какой-то причине я не получаю сообщения tryToPerform:with: и validateMenuItem:, когда пользователь обращается к панели MainMenu. Что мне здесь не хватает?

ответ

0

Оказалось, что на самом деле сообщение respondsToSelector: отправляется до того, как вызывается validateMenuItem:. И если NSViewController фактически не отвечает на сообщение, validateMenuItem никогда не будет вызван. Тем не менее, во всем процессе я никогда не видел tryToPerform:with:, получившего вызов вообще. Не уверен, почему, посмотрев руководство по программированию событий Cocoa и отчитайтесь.

Смежные вопросы