3

次のコードで、systemStatusBar にメニューを追加しました。

statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain];

次に、そのプロパティを設定します。他のステータス アイテム (Volume、DateTime、Wi-Fi、BatteryIndi​​cator など) との唯一の違いは、それを選択してキーボードの左右の方向ボタンを押すと、他のアイテムに移動できないことです。別のステータス項目を選択して方向キーを押すと、ステータス項目が選択されず、代わりに別の statusItem にジャンプします。この問題を修正する方法はありますか、それとも OS 以外の statusItems の標準ですか?

4

1 に答える 1

1

表示されるメニュー バーは統一されたオブジェクトではありません。左側のアプリケーション メニュー項目は、現在のアプリケーションに属します。これらの MenuItem はすべて、共通NSMenuオブジェクトの子です。

一番右のステータス バー項目はシステム (Spotlight、Clock、TimeMachine など) に属し、共通の親を共有するか、NSMenuいくつかの特別な権限を持っています。

各カスタム ステータス バー メニュー項目は、対応するアプリケーションに属し、独自のスタンドアロンのNSMenu親オブジェクトを持ちます。各ステータス メニューは、ご存じのとおりNSStatusItem、オブジェクトに属する に挿入されNSStatusBarます。どちらも から直接継承しNSObject、( とは異なりNSMenu) ステータス メニューの親または兄弟を決定するインターフェイスを欠いています。ステータスバーの各項目は完全に分離されています。

NSMenuそのため、すべてのアイテムがその子と親を認識している内で、矢印キーを使用して簡単にナビゲートできます。ただし、ステータス バー メニューから他のメニューに移動することはできません。

于 2012-10-18T08:23:52.747 に答える