gpt4 book ai didi

uiwindow - 如何在 MacCatalyst 中创建具有 Vibrant 背景的 UIWindow?

转载 作者:行者123 更新时间:2023-12-05 05:03:47 34 4
gpt4 key购买 nike

我们可以在 native mac 应用程序中使用 NSWindow 和 NSVisualEffectView 轻松创建这种效果,但是我们如何在为 MacCatalyst 构建的应用程序中实现呢?

enter image description here

当然,为 UIWindow 设置 alpha = 0 并在其上添加 UIVisualEffectView 并不能解决问题,它并没有那么简单。

最佳答案

您需要添加 NSVisualEffectView 作为 NSWindow.contentView 的 subview 。

NSWindow 不适用于 Mac Catalyst 应用程序,因此您必须按照说明创建 macOS 插件 here ,或使用类似 Dynamic 的库(完全披露:我是作者)在没有插件的情况下做到这一点,如下所示:

let nsWindow = Dynamic.NSApplication.sharedApplication.delegate.hostWindowForUIWindow(view.window)

let visualEffectView = Dynamic.NSVisualEffectView(frame: NSZeroRect)
nsWindow.contentView.addSubview(visualEffectView, positioned: -1, relativeTo: nil)
visualEffectView.frame = nsWindow.contentView.bounds.asCGRect
visualEffectView.autoresizingMask = 18 /*NSViewWidthSizable | NSViewHeightSizable*/

结果是这样的:

enter image description here


编辑:不要忘记也使 Controller 的 View 透明:

view.backgroundColor = .clear

关于uiwindow - 如何在 MacCatalyst 中创建具有 Vibrant 背景的 UIWindow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61472864/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com