0

LSUIElementとしてマークされたアプリで作業しており、そのメインウィンドウはステータスバーに「接続された」NSPanelです。通常のアラートパネルを表示する必要がある場合があります(NSRunAlertPanelまたはNSAlertを使用)。ただし、パネルが常にユーザーが現在いるスペースに表示されることが非常に重要です(そうしないと、ユーザーがすぐに表示されない可能性があり、表示することが重要です)。

問題は、アラートは、現在のスペースではなく、ユーザーがアプリケーションのウィンドウを最後に操作したスペースに常に表示されることです。したがって、たとえば、スペース番号1でアプリのNSPanelを開いたり閉じたりすると、スペース番号2に移動し、しばらくしてアプリにアラートが表示されます。そのアラートはスペース番号2ではなくスペース番号1に表示されます。私(または一般ユーザー)は、最初のスペースに切り替えることを決定するまでアラートを表示しません。

この動作を変更する方法はありますか(=アラートを常に現在のスペースに表示するようにする)?

4

1 に答える 1

2

あなたが求めているものとは正確には異なりますが、アラートウィンドウを表示する前に、コレクションの動作をNSWindowCollectionBehaviorCanJoinAllSpacesusingに設定してくださいsetCollectionBehavior:。ウィンドウは、現在のスペースを含むすべてのスペースに表示されます...

于 2012-10-28T02:22:39.023 に答える