0

呼び出してNSViewController手動でレスポンダーチェーンに入れました

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

ユーザーがビュー内でキーを押すと、keyDown:メッセージを正常に受信できます。ただし、何らかの理由で、ユーザーが MainMenu バーにアクセスしたときにメッセージを受信tryToPerform:with:して​​いません。validateMenuItem:ここで何が欠けていますか?

4

1 に答える 1

0

が呼び出される前に、実際にはrespondsToSelector:メッセージが最初に送信されていることがわかります。validateMenuItem:そして、NSViewControllerがメッセージに実際に応答しない場合、 がvalidateMenuItem完全に呼び出されることはありません。とはいえ、プロセス全体で、呼び出されるのを見たことがありませんtryToPerform:with:。理由がわからないので、Cocoa のイベント プログラミング ガイドを調べて報告します。

于 2011-12-28T06:36:17.543 に答える