NSAlert高于NSPopover

时间:2015-01-11 15:09:14

标签: macos cocoa nspopover nsalert

我有一个从NSStatusItem显示的NSPopover。这个Popover不时显示NSAlerts。问题是这些警报总是出现在弹出窗口下方,即使它们成为关键窗口。即使我拖了它,它仍然在弹出窗口下面。有没有办法让警报高于弹出窗口?

2 个答案:

答案 0 :(得分:0)

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

对于我来说,更改NSAlert的NSStatusWindowLevel不会将警报移到弹出窗口的前面。这可能与NSAlerts初始化的特定方式有关。

答案 1 :(得分:0)

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