我目前正在尝试更改NSVisualEffectView的色调。到目前为止,我得到的是:
class MainViewViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
// create a colored view to tint the visual effect view
let coloredView = NSView(frame: self.view.frame)
coloredView.layer?.backgroundColor = NSColor(red: 1, green: 0, blue: 0, alpha: 0.5).cgColor
// create the visual effect view for the background blur
let visualEffectView = NSVisualEffectView(frame: self.view.frame)
visualEffectView.addSubview(coloredView)
// add the visual effect view
self.view.addSubview(visualEffectView, positioned: NSWindow.OrderingMode.below, relativeTo: nil)
}
}如您所见,我尝试添加另一个图层,以着色视觉效果视图。不过,这不管用。
我有可能改变NSVisualEffectView的颜色吗?
发布于 2019-12-31 01:34:42
您不会更改“视觉效果”视图的颜色,因为它没有颜色。视觉效果视图根据视图的材质和混合模式将背景和前景(子视图)混合在一起。“背景”要么是窗口内视觉效果视图下的内容,要么是窗口后面的内容。
在这些示例中,在视觉效果视图中有一个蓝色的NSBox,在红色的NSBox中。
这个视觉效果视图的混合模式是“后面”窗口。请注意,您从窗口后面看到绿色作为视觉效果视图中的混合背景。

这个视觉效果视图的混合模式是“在”窗口。请注意,您看到的是红色框,它是视觉效果视图的背景。

在这两种情况下,材料是“轻”的外观。不同的材料会有不同的外观。
没有一般的方式有“模糊的彩色背景”创建的视觉效果视图。它是打算使用某些方式,基于材料/混合模式组合,每一个将有不同的外观。
https://stackoverflow.com/questions/59397083
复制相似问题