2

メイン ウィンドウを表示するこの Cocoa アプリケーション (ソース コード) を見つけました。

このウィンドウがキーである限り、Command-キーを押すだけでなく、メイン メニューから[設定] ウィンドウを開くことができますが、メイン ウィンドウがキーではなく、同じアプリの別のウィンドウがキーである場合、NSMenuItem はグレー表示され、キーボード ショートカットが応答しません。

メイン メニューに関連付けられている xib ファイルを調べたところ、openPreferences:(id)senderNSMenuItem が NSApplication である必要がある FirstResponder に IBAction を送信しています。

何が欠けていますか (私はまだ mac cocoa プログラミングの初心者です)? 各アプリケーション ウィンドウから設定に到達できるようにするにはどうすれば修正できますか?

4

1 に答える 1

2

おそらく、元の作者が何らかの状況で 実装- (BOOL)validateMenuItem:(NSMenuItem *)menuItemして戻ってきたのでしょう。NO

NSMenuValidationProtocol ドキュメンテーション

更新:別の簡単な推測: 2 番目のウィンドウを開いた後、メニュー項目の IBAction を処理するオブジェクトがレスポンダー チェーンに含まれていない可能性があります。NSMenuItems は、アクション セレクターがレスポンダー チェーンにある場合にのみ有効になります。

于 2010-11-07T09:16:48.507 に答える