gpt4 book ai didi

swift - 使 Cocoa NSWindow 半透明隐藏 Storyboard元素

转载 作者:行者123 更新时间:2023-12-03 18:07:17 24 4
gpt4 key购买 nike

在我的应用程序委托(delegate)中,我使用以下代码使窗口半透明:

func applicationDidFinishLaunching(_ aNotification: Notification) {
let visualEffect = NSVisualEffectView()
visualEffect.translatesAutoresizingMaskIntoConstraints = false
visualEffect.material = .dark
visualEffect.state = .active
visualEffect.wantsLayer = true
visualEffect.layer?.cornerRadius = 16.0


NSApplication.shared.mainWindow?.titleVisibility = .hidden
NSApplication.shared.mainWindow?.styleMask.remove(.titled)
NSApplication.shared.mainWindow?.backgroundColor = .clear
NSApplication.shared.mainWindow?.isMovableByWindowBackground = true

NSApplication.shared.mainWindow?.contentView?.addSubview(visualEffect)

guard let constraints = NSApplication.shared.mainWindow?.contentView else {
return
}

visualEffect.leadingAnchor.constraint(equalTo: constraints.leadingAnchor).isActive = true
visualEffect.trailingAnchor.constraint(equalTo: constraints.trailingAnchor).isActive = true
visualEffect.topAnchor.constraint(equalTo: constraints.topAnchor).isActive = true
visualEffect.bottomAnchor.constraint(equalTo: constraints.bottomAnchor).isActive = true
}

问题是 Storyboard中的每个元素都不再可见。我怎样才能解决这个问题?谢谢

最佳答案

您需要将所有 UI 作为 subview 添加到 NSVisualEffectView 或将 NSVisualEffectView 移动到 View 层次结构的后面:

NSApplication.shared.mainWindow?.contentView?.addSubview(visualEffect, positioned: .below, relativeTo: nil)

更新:我在 Xcode 中创建了一个新的 macOS 项目,并在 View 上添加了一个标签。然后我粘贴了你的代码,我唯一改变的是上面的代码行。它有效。

enter image description here

关于swift - 使 Cocoa NSWindow 半透明隐藏 Storyboard元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62024487/

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