SplitView 不受图层支持,但尝试使用叠加侧边栏

SplitView not layer-backed, but trying to use overlay sidebars

这是我第一次使用 Cocoa,我添加了一个 NSSplitViewController 作为我的 NSWindowController 的内容视图。我在 NSSplitViewController 中添加了两个侧边栏,但我不断收到以下 runtime 警告,而且我似乎找不到任何有关导致此问题的原因:

WARNING: The SplitView is not layer-backed, but trying to use overlay sidebars..
implicitly layer-backing for now. Please file a radar against this app if you see
this.

编辑:

此时一切都在情节提要中。 NSSplitViewController 具有三个部分,左侧边栏和主要内容区域,以及右侧边栏(想想 Xcode 或页面)。在两个侧边栏中,我都有一个标签(仅用于测试)。此外,这是一个 运行时 警告。

如果对此有任何见解,那就太好了。谢谢!

我刚遇到同样的问题。 由于您使用的是侧边栏,而侧边栏现在是半透明的,因此底层视图需要支持图层。要实现这一点,请在视图效果检查器中将拆分视图设置为具有核心动画层:

确保您的 splitview 中的所有其他视图也被标记为图层支持。我忘记了重绘问题。

运行 最近在 macOS 11 上使用 Xcode 12.4 进行开发。在 Interface Builder 中勾选复选框是不够的。为了消除警告,我必须在 awakeFromNib:

中明确地将 wantsLayer 设置为 true
// Assume splitViewController is an NSSplitViewController stored in an iVar
splitViewController.splitView.wantsLayer = true

终于把警告去掉了