macOS Window 叠加效果错误?

macOS Window Overlay Effect Bug?

编辑:我仍然没有让它工作。有人会介意下载我的简单测试项目并在他们的机器上试用吗?只有样板代码和故事板。

https://www.dropbox.com/sh/qtoqhi7pjq5w3hh/AADLCTY_7FPG18RWeSe57Jroa?dl=0

原始问题:我正在为 Big Sur 开发 macOS 应用程序。我想在我的内容上利用 window 栏的模糊效果。我已经在 window 上设置了 fullSizeContentView 掩码。但是,只有在滚动视图的前缘与其父视图的前缘之间设置最小间距时,我才能使效果起作用。这似乎是 AppKit 中的一个错误。任何人都可以确认或告诉我我做错了什么吗?

查看以下剪辑: 首先我有一个简单的 Xcode 项目(没有代码,只是使用 Storyboard)。滚动视图在视图控制器的内容视图中设置。滚动视图与其父视图的顶部、尾部和底部边缘没有间距。前缘与其父视图的前缘有标准间距(20pt)。

这按预期工作,但我不想要前沿间距。所以我将前缘间距设置为 0。

模糊效果消失了。

更新:看来这个'issue'已经在macOS 12 beta 5中修复了。

下面的代码可能对 macOS 11 仍然有用。


如今的 macOS 充斥着各种小怪兽 'issues',这似乎就是其中之一。在大多数情况下,这些问题只能通过应用奇怪的解决方案来解决,因为我们无法访问 AppKit 的内部部分。

if let constraint = view.constraints.first(where: { [=10=].firstAttribute == .leading }) {
   constraint.constant = -0.3
}

应用一个小的负前导约束似乎暂时解决了这个问题。可以在代码中完成,理论上也可以在 Storyboard 中完成,尽管在界面设计器中很难输入和存储十进制值。