5

我有一个从 NSStatusItem 显示的 NSPopover。此弹出窗口不时显示 NSAlers。问题是这些警报总是出现在弹出框下方,即使它们成为关键窗口。即使我拖动它,它仍然在弹出框下方。有没有办法在弹出框上方发出警报?

4

3 回答 3

0

NSStatusItems 使用NSStatusWindowLevel. 因此,从其中显示的弹出窗口或其他子窗口将继承该窗口级别。

您应该确保警报窗口处于或高于此窗口级别。

于 2015-01-12T17:54:55.970 回答
0

这将起作用:DispatchQueue.main.async { alert.window.level = .popUpMenu } // moves the alert above statusbar app

于 2020-11-12T21:15:30.023 回答
0

一种解决方法是使用方法beginSheetModal而不是显示 NSAlert runModal。使用beginSheetModal,您必须指定与弹出框关联的窗口以将工作表附加到,并且您需要使用完成处理程序。通过将工作表附加到弹出窗口,您至少可以保证 NSAlert 将显示在弹出窗口的前面。

更改 NSAlert 的 NSStatusWindowLevel 并没有将警报移动到我的弹出框前面。这可能与初始化 NSAlers 的特定方式有关。

于 2018-08-13T00:42:27.467 回答