2011-07-10 7 views
1

ステータス項目があり、ユーザーがクリックするといくつかの操作が発生するようにしたいと考えています。いくつかのオンラインヘルプとドキュメントがこれまで私にこれをもたらしました。ステータス項目をクリックすると操作は開始されますが、表示されません。

ヘッダファイルには、これを持っている:

- (IBAction)updateStatusItem:(id)sender; 

クラスの.mファイルがあります。

[statusItem setAction:@selector(updateStatusItem:)]; 

私は両方のapplicationDidFinishLaunchingにし、awakeFromNibでそれを試してみました。

メートルファイル内

も:

-(IBAction)updateStatusItem:(id)sender{ 
NSLog(@"updateStatusItem worked");} 

私は、これは理にかなって、私は、ステータス項目をクリックすると、メニューは普通に落下して、メッセージがログに記録されません見ることができるものから。おそらく私はIBで何とかリンクしなければならないと思っていましたが、IBにステータス項目が表示されていない限り、プログラマチックに完了しています。私はこれができますが、それは私のために働いていない知っている。誰か間違ったことを見ることができますか?

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

答えて

1

アクションメッセージを送信するには、どこかに送信する必要があります。アクションがトリガされると

[statusItem setAction:@selector(updateStatusItem:)]; 
[statusItem setTarget:yourController]; 

、これはあなたのコントローラオブジェクトの‑updateStatusItem:メソッドを呼び出します:それはあなたにも、あなたがアクションセレクタを呼び出すするオブジェクトであるオブジェクトのtargetを設定しなければならないことを意味します。

ただし、ターゲット/アクションを使用するステータス項目を持つことはできず、メニューもあります。ステータスアイテムにメニューがある場合、ステータスアイテムのクリックによって常にトリガされ、ステータスアイテムのターゲットとアクションは無視されます。

+0

うん、それはうまくいった。あまりにも悪い私はメニューとアクションの両方を持つことはできません。 – Elbimio

関連する問題