2011-01-07 16 views
4

ユーザーがステータスバーのNSStatusItemをクリックすると開くNSMenuがあります。 NSMenuが開かれている(展開されている)のかどうかはどうやって判断できますか?NSMenuが開かれているかどうかを確認する

ありがとうございました!

答えて

9

NSMenuDelegateプロトコルを使用すると、menuWillOpenmenuWillCloseのメッセージを処理できます。 menuWillOpenを使用して、メニューが開いていることを示すブール値を設定し、オフにするにはmenuWillCloseを使用します。


更新:menuWillClose:が利用できなくなっデリゲートメソッドであるように見えません。代わりにmenuDidClose:を使用してください。

+0

ありがとうございました!しかし、それはまだ動作しません。私がしたのはをインターフェイスファイルに追加することでした。次に、.mファイルに2つのメソッドを追加しました: ' - (void)menuWillOpen:(NSMenu *)theMenu { \t \t isClosed = NO; \t } ' - (void)menuWillOpen:(NSMenu *)theMenu { \t \t isClosed = NO; \t }これで十分ですか?私は何を間違えたのですか? – Knodel

+1

'awakeFromNib'メソッドなどで' [menu setDelegate:self] 'を呼び出す必要があります。 –

+0

ありがとうございます!私のばかげて申し訳ありません – Knodel

関連する問題