如何使内容位于其下方时才出现的NSVisualEffectView

时间:2017-11-13 22:05:02

标签: swift xcode macos cocoa

我正在开发一个使用NSVisualEffectView来实现透明度的macOS应用程序。我想达到类似于iOS'的效果。 Cover Sheet小部件视图。请注意,当您向上滚动时,内容会在搜索栏周围显示模糊。我想在macOS应用程序中执行此操作,以便当表视图中的内容在某个点下滚动时,NSVisualEffectView会模糊它。我该怎么做?提前谢谢。

1 个答案:

答案 0 :(得分:1)

创建一个Visual Effect View实例,如下所示,并在窗口上设置:

func setVisualEffectToWindow(window: NSWindow) {
        // create the visual effect view
var blurryView = NSVisualEffectView(frame: NSRect(x: 0, y: 0, width: 800, height: 600)) //Create with size you want or you can use window content bound here
    // this is default value but is here for clarity
    blurryView.blendingMode = NSVisualEffectBlendingMode.BehindWindow

    // set the background to always be the dark blur
    blurryView.material = NSVisualEffectMaterial.Dark

    // set it to always be blurry regardless of window state
    blurryView.state = NSVisualEffectState.Active

    window.contentView.addSubview(blurryView)
}