2011-08-11 8 views
1

このメソッドを使用して、アプリケーションがアクティブの場合のみNSStatusItemメニューを表示します。アプリケーションがアクティブな場合のみNSStatusItemメニューを表示

-(void)menuWillOpen:(NSMenu*)menu{ 
    if(![NSApp isActive]){ 
     [menu cancelTracking]; 
    } 
    [[NSApplication sharedApplication] activateIgnoringOtherApps:YES]; 
    [window makeKeyAndOrderFront:self]; 
} 

それは完璧に動作しますが、cancelTrackingはNSStatusItemの青いハイライトをブロックするように思えます。だからステータスメニュー項目をクリックすると、サブメニューが表示されず、メインウィンドウが表示されますが、アイコンは強調表示されません。 これを実現する方法はありますか?

答えて

1

ステータス項目がハイライト表示されるタイミングをより正確に制御する必要がある場合は、カスタム表示を作成することをおすすめします。その後、mouseDown:などを使用できます。Thisは、ステータス項目にカスタムビューを配置する良い例です。

関連する問題