2009-06-02 4 views

答えて

5

NSStatusItemは、他の多くのコントロールと同様にターゲット/アクションメカニズムをサポートしています。私はこれを自分で使用していません - NSStatusItemをメニュー付きでしか使用していないので、のメッセージが送信されたとき(つまり、マウスボタンがクリックされたときやリリースされたとき)はとは分かりません。デフォルトで望んでいない場合は、Danielの提案のようなカスタムビューが必要です。

+0

どのように行動するのですか? – Joshua

+2

アクションを設定します。 –

+0

どのようにアクションを設定しますか?あなたはIBで見ることができないので、通常のやり方ではできません。 – Joshua

4

NSStatusItemでこれを実現するには、カスタムビューを作成し、デフォルトのNSStatusItemビューを "setView:"メソッドを呼び出して置き換える必要があります。

カスタムビューでコードを実装して、マウスのクリックに反応するようにします。窓を開ける。 (ボタンや他の標準のビューを使用すると効果的です)。

私はこれが正しいように少しトリッキーなことを警告します。一例として、多くの微妙なニュアンスがあります。あなたのカスタムビューの外観をメニューバー内で正しく見えるようにします。しかし、これは、デフォルトのメニュープロンプトステータス項目ビューをオーバーライドする場合に必要な一般的なアプローチです。

+0

これが最も簡単な方法ですか? – Joshua

+2

"確信"は強い言葉だと思いますが、私がこれを行う唯一の方法ではないと思えば、私はこのように答えなかったでしょう。たぶん誰かが別の意見を述べるでしょう。 – danielpunkass

+0

ええ、誰か他の人が答えるかどうかわかります。 – Joshua

関連する問題