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

时间:2015-11-15 20:38:50

标签: swift macos xcode7 uisplitviewcontroller

这是我第一次使用Cocoa,我添加了一个NSSplitViewController作为我的NSWindowController的内容视图。我在NSSplitViewController中添加了两个侧栏,但我不断收到以下运行时警告,我似乎无法找到导致此问题的原因:

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或Pages)。在两个侧边栏中,我有一个标签(仅用于测试)。此外,这是运行时警告。

对此的任何见解都会很棒。谢谢!

2 个答案:

答案 0 :(得分:11)

我刚刚遇到同样的问题。 由于您正在使用侧边栏,并且侧边栏现在是半透明的,因此底层视图需要进行图层支持。要实现这一点,请将分割视图设置为在View Effects Inspector中具有核心动画层:

Setting Layer Backed Property

确保splitview中的所有其他视图也标记为图层支持。当我忘记这一点时,我得到了重绘问题。

答案 1 :(得分:0)

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

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

终于摆脱了警告。