私のアプリは、OS X メニューバーに NSStatusItem を配置します。ある時点で、システム NSStatusBar からメニューバー アイコンを削除したいと考えています。(この時点でまだ NSStatusItem を保持し、それにメッセージを送信したいのですが、表示されないようにします。)
このメソッドを使用して、statusBar から statusItem を削除しています。
[[NSStatusBar systemStatusBar] removeStatusItem:statusItem];
後で、statusItem が現在 statusBar に表示されているかどうかを確認したいと思います。ブール値などを介してこれを追跡したくない.
私はこのチェックがうまくいくと思った:
if ([[NSStatusBar systemStatusBar] isEqualTo:[statusItem statusBar]])
{
NSLog(@"statusItem's bar == system bar, before");
}
NSLog(@"removing from systemStatusBar");
[[NSStatusBar systemStatusBar] removeStatusItem:statusItem];
if ([[NSStatusBar systemStatusBar] isEqualTo:[statusItem statusBar]])
{
NSLog(@"statusItem's bar == system bar, after removal");
}
これは以下を出力します:
statusItem's bar == system bar, before removal
removing from systemStatusBar
statusItem's bar == system bar, after removal
したがって、statusItem の statusBar に明らかな変化はありません。
NSStatusBarクラス リファレンスには、該当するメソッドが含まれていないようです。
特定の NSStatusItem がメイン システム バーにあるかどうかを確認する方法はありますか?