我有一个通过NSStatusItem显示的NSPopover。这个popover不时会显示NSAlerts。问题是这些警报总是出现在popover下方,即使它们成为键窗口。即使我拖动它,它仍然在popover下方。有没有办法使警报在popover上方显示?
DispatchQueue.main.async { alert.window.level = .popUpMenu } // 将警报移到状态栏应用程序之上
NSStatusItems使用NSStatusWindowLevel
的窗口级别。因此,从其中一个窗口显示的弹出窗口或其他子窗口将继承该窗口级别。
您应确保警报窗口位于此窗口级别或以上。
beginSheetModal
方法而不是 runModal
方法显示 NSAlert。使用 beginSheetModal
,您必须指定与弹出窗口关联的窗口以附加工作表,并且需要使用完成处理程序。通过将工作表附加到弹出窗口,您至少可以保证 NSAlert 将显示在弹出窗口前面。