swift 从Mac菜单栏应用程序打开时将NSOpenPanel推到前面,应用于菜单栏应用程序时新的PHPicker出现故障

8cdiaqws  于 2023-03-07  发布在  Swift
关注(0)|答案(1)|浏览(155)

我有一个Mac菜单栏应用程序,它可以打开NSOpenPanel,这样用户就可以选择要上传的图像。但是,当我打开NSOpenPanel时,它会显示在后台,如果有意义的话,一开始是不可点击的。此外,我也尝试过在Mac上使用苹果新的PHPicker,但是当我从Mac菜单栏应用程序打开它时,它完全出了故障。我想知道是否有其他人遇到过这个问题,他们是如何解决这个问题的。
先谢了!

gtlvzcf8

gtlvzcf81#

关于你的第一个问题
我在NSSavePanel上使用了以下代码,它将面板窗口置于堆栈的前端。

let panel = NSSavePanel()
… 
panel.begin { … }
panel.orderFrontRegardless()

来自Apple文档:
前置顺序不考虑()
将窗口移到其层级的前面,即使其应用程序未处于活动状态,也不会更改关键窗口或主窗口。
讨论
通常情况下,一个NSWindow对象不能被移动到关键窗口的前面,除非它和关键窗口在同一个应用程序中。你应该很少需要调用这个方法;它被设计为在应用程序以这样的方式协作时使用,即活动应用程序(具有键窗口)正在使用另一个应用程序来显示数据。

相关问题