0

ユーザーがMAAttachedWindowの外側をクリックしたときにMAAttachedWindowを非表示にする方法について、このサイトの投稿を読みました。この投稿のように、私はstatusItemと一緒にMAAttachedWindowを使用します。 外側をクリックすると、MAAttachedWindowを非表示にします。キー状態を終了するときにウィンドウを非表示にする必要があると表示されます。

しかし、ウィンドウのキーステータスの代わりに他のアプローチがあるのではないかと思います。キーステータスを操作すると、別の問題が追加されます。ウィンドウがキー状態を辞任したときに通知を受け取るには、他のすべてのアプリケーションが以前に無視されている必要があります(つまり、他のすべてのアプリケーションのウィンドウが非アクティブになり、次の場合に色が失われます。 statusMenuが表示されます。これは[NSAppactivateIgnoringOtherApps:YES]によって実行されます。Spotlight-またはAirport-statusItemを使用する場合、これは通常は発生しません。ユーザーはこれを期待していません。

MAAttachedWindowを実際のNSMenuのように動作させる人はいますか?この問題を発生させずにキーステートを操作する方法はまだありますか?ヒントありがとうございます。

4

1 に答える 1

0

[NSApp activateIgnoringOtherApps:YES] を使用せずに NSPanel をアクティブにすることができます。次のように NSNonactivatingPanelMask を使用するだけです。

NSPanel *panel = [super initWithContentRect:NSZeroRect 
                                              styleMask: NSNonactivatingPanelMask  
                                                backing:NSBackingStoreBuffered 
                                                  defer:NO];
于 2011-09-26T04:23:04.233 に答える