NSAlert在NSPopover上方

5

我有一个通过NSStatusItem显示的NSPopover。这个popover不时会显示NSAlerts。问题是这些警报总是出现在popover下方,即使它们成为键窗口。即使我拖动它,它仍然在popover下方。有没有办法使警报在popover上方显示?

3个回答

1
这将起作用:DispatchQueue.main.async { alert.window.level = .popUpMenu } // 将警报移到状态栏应用程序之上

0

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

您应确保警报窗口位于此窗口级别或以上。


0
一种解决方法是使用 beginSheetModal 方法而不是 runModal 方法显示 NSAlert。使用 beginSheetModal,您必须指定与弹出窗口关联的窗口以附加工作表,并且需要使用完成处理程序。通过将工作表附加到弹出窗口,您至少可以保证 NSAlert 将显示在弹出窗口前面。
将 NSAlert 的 NSStatusWindowLevel 更改为我并没有将提示移动到弹出窗口的前面。这可能与初始化 NSAlerts 的特定方式有关。

不太理想,因为警报会固定在弹出窗口的顶部。与期望的行为相比,居中于屏幕更为合适。 - Sentry.co

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接