macos - 如何在图层主机 NSView 中使用 NSVisualEffectView

标签 macos calayer nsview nswindow nsvisualeffectview

我的 OSX 应用程序中有一个 NSView,使用 CALayer 执行各种动画。该 View 是一个图层宿主视图,其中包含许多小图层。

我想添加一个带有 NSVisualEffectBlendingModeBehindWindow BlendingMode 的 NSVisualEffectView 以支持 Yosemite 上的模糊透明效果。

问题是当我关闭图层宿主视图时, NSVisualEffectView 可以工作,但是当我打开图层宿主视图时,模糊透明效果消失,留下空白的白色不透明背景。

我的问题是:“是否可以将 NSVisualEffectView 与 Layer 宿主视图一起使用?如果可行,这里的方法是什么?”

最佳答案

事实证明,我将 NSVisualEffectView 创建为图层宿主视图,这会导致此问题。

解决方案是添加 2 个 View : 下面是一个 NSVisualEffectView。 上面是一个 NSView 层宿主视图。

这将解决问题。

关于macos - 如何在图层主机 NSView 中使用 NSVisualEffectView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28978749/

相关文章:

ios - 创建一个带有四分之一圆弧的 UIBezierPath(或 CGPath),它是圆角的 'Opposite'

ios - "affineTransform"是用于设置 CABasicAnimation 的有效 CALayer 键路径吗

objective-c - 从 NSData 显示 NSImage

cocoa - 绑定(bind)自定义NSView : Does it demand creating an IBPlugin?

objective-c - 使用 MAAttachedWindow 显示 View 时刷新 NSView 内容

macos - 在 OS X 的 Qt5.5 中找不到 qmake

xcode - 在库的 Mac OS X SDK 中包含调试版本

mysql - 在 Mac OS X Yosemite 上安装 MySQL 并创建数据库

objective-c - 当与另一个事件重叠时,NSEvents 会通过 NSView

node.js - 在 MacOS 中使用 Homebrew 安装 Node 时卡住:fork.rb:49:in `write' : 管道损坏 (Errno::EPIPE)