如何定位系统/操作系统警报窗口/模态?例如,应用内购买

How to position system/OS alert windows/modals? e.g. in-app purchase

提问人:Peter R 提问时间:11/12/2023 更新时间:11/12/2023 访问量:53

问:

我有一个 macos 菜单栏应用程序,并且我有应用内购买作为其中的一部分。问题是我的窗口(NSPopover)足够大,以至于系统警报(以屏幕为中心)看起来非常不合适和不和谐,而且它们半重叠,但在视觉上没有吸引力。

使用“通过 Apple 登录”,可以设置一个属性,该属性调用可将窗口返回到的方法,并且它会将系统警报居中指向该窗口。我在应用内购买文档中找不到类似的东西,我想知道我是否可以做一些更通用的事情来让操作系统将警报集中在我的窗口上。我不想改变警报上的任何内容,只想改变它出现的地方。这可能吗?presentationContextProviderpresentationAnchor

例如,这是我为“使用Apple登录”所做的:

class X: ASAuthorizationControllerPresentationContextProviding {
...
    func someFunc() {
        controller.presentationContextProvider = self
        controller.performRequests()
    }
    func presentationAnchor(for controller: ASAuthorizationController) -> ASPresentationAnchor {
        NSApp.windows.first!
    }
}

但我知道没有什么直接的相似之处,但有什么东西可以达到相同的最终结果吗?

Swift macOS SwiftUI AppKit

评论


答: 暂无答案