我目前正在尝试更改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的颜色?
您不更改视觉效果视图的颜色,因为它没有颜色。视觉效果视图根据视图的材质和混合模式混合背景和前景(子视图)。 “背景”可以是窗口内的视觉效果视图下的内容,也可以是窗口后的内容。
在这些示例中,视觉效果视图中有一个蓝色NSBox,在红色NSBox中是。
此视觉效果视图的混合模式位于窗口“后面”。请注意,您从窗口后面看到的绿色是视觉效果视图中的混合背景。
此视觉效果视图的混合模式是在窗口内。请注意,您会看到红色框,它是视觉效果视图的背景。
在两种情况下,材料的外观都是“轻”。不同的材料将具有不同的外观。
没有一种通用的方法可以通过视觉效果视图创建“模糊的彩色背景”。根据材料/混合模式的组合,应以某种方式使用它,并且每种方法都有不同的外观。