NSStatusItem を作成し、インターフェイス ビルダー (Xcode 4.0) 内で 2 つの主要な同等物を割り当てました。これらは、設定メニュー cmd- と終了オプション cmd-q 用です。これらはどちらも、メニューが強調表示されている/開いているときに機能しますが、それ以外の場合は、アプリケーションが最優先であっても機能しません。なぜこれが起こっているのか、またはどうすればこれを変更できるのかについてのアイデアはありますか?
1803 次
2 に答える
2
オペレーティング システムは、処理しないキー イベントをフロント アプリケーションに渡します。フロント アプリケーションは、それらをメイン メニューおよび現在のウィンドウ内の同等のキー イベントと比較します。これらはステータス バーの項目とは比較されません。また、ステータス バーは実際には別のアプリケーションであるため、アプリケーションがフォアグラウンドにあるかどうかは問題ではありません。メニューが開いているときは、ウィンドウにフォーカスがあります。これが、そのような状況で機能する理由です。
ステータス アイテムはメニューが開いている間だけアクティブになるため、他の 2 つの方法のいずれかを使用して、同等のキーを取得する必要があります。最初の新しい方法は、イベント タップを使用することです。私はこれを使用したことがないので、セットアップ方法についてアドバイスすることはできません。もう 1 つの古いオプションは、ホット キーを使用することです。この方法は将来サポートされなくなる可能性がありますが、興味がある場合は、この回答に例を投稿しました。
于 2011-04-26T02:36:42.500 に答える
-1
私の推測:あなたNSMenu
はレスポンダーチェーンに含まれていません。そこにそれを入れる方法を理解できれば、おそらくこれを機能させることができます。
于 2011-04-26T03:02:21.563 に答える