gpt4 book ai didi

macos - 如何在窗口的标题栏中使用 NSVisualEffectView?

转载 作者:行者123 更新时间:2023-12-03 21:04:00 24 4
gpt4 key购买 nike

在 OS X Yosemite 中,Apple 引入了一个新类 NSVisualEffectView .目前,这个类没有记录,但我们可以在 Interface Builder 中使用它。

我如何使用 NSVisualEffectView在窗口的标题栏中?

示例如下:在 Safari 中,当您滚动时,内容会出现在工具栏和标题栏下方,并带有鲜艳和模糊效果。

enter image description here

最佳答案

@sgonzalez 的回答迫使我去探索 NSWindow.h我找到的文件 titlebarAppearsTransparent属性(property)。

所以我们得到:

class BluredWindow: NSWindow {

override func awakeFromNib() {

let visualEffectView = NSVisualEffectView(frame: NSMakeRect(0, 0, 300, 180))
visualEffectView.material = NSVisualEffectView.Material.dark
visualEffectView.blendingMode = NSVisualEffectView.BlendingMode.behindWindow
visualEffectView.state = NSVisualEffectView.State.active

self.styleMask = self.styleMask | NSFullSizeContentViewWindowMask
self.titlebarAppearsTransparent = true
//self.appearance = NSAppearance(named: NSAppearanceNameVibrantDark)



self.contentView.addSubview(visualEffectView)

self.contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-0-[visualEffectView]-0-|",
options: NSLayoutConstraint.FormatOptions.directionLeadingToTrailing,
metrics: nil,
views: ["visualEffectView":visualEffectView]))

self.contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[visualEffectView]-0-|",
options: NSLayoutConstraint.FormatOptions.directionLeadingToTrailing,
metrics: nil,
views: ["visualEffectView":visualEffectView]))

您也可以在 IB 中设置 NSVisualEffectView 它将在标题栏上展开。

关于macos - 如何在窗口的标题栏中使用 NSVisualEffectView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24414483/

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