Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift SplitView不支持图层,但尝试使用覆盖边栏_Swift_Macos_Xcode7_Uisplitviewcontroller - Fatal编程技术网

Swift SplitView不支持图层,但尝试使用覆盖边栏

Swift SplitView不支持图层,但尝试使用覆盖边栏,swift,macos,xcode7,uisplitviewcontroller,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. Pleas

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


任何关于这方面的见解都会很好。谢谢

我也遇到了同样的问题。 由于您使用的是侧边栏,并且侧边栏现在是半透明的,因此底层视图需要以图层为背景。要实现此目的,请在“视图效果检查器”中将分割视图设置为具有核心动画层:


确保splitview中的所有其他视图也标记为图层备份。当我忘记这一点时,我遇到了重新绘制的问题。

最近在macOS 11上使用Xcode 12.4开发时遇到了这个问题。仅选中Interface Builder中的复选框是不够的。为了消除警告,我必须在
awakeFromNib
中显式地将wantsLayer设置为true:

// Assume splitViewController is an NSSplitViewController stored in an iVar
splitViewController.splitView.wantsLayer = true

这最终消除了警告。

错误出现在哪里?在Xcode中,还是作为运行时错误?另外,您是如何将侧栏添加到拆分视图的?感谢您的回复!目前这是可行的,但在代码中启用这样的简单功能似乎有点奇怪。在IB中有没有这样做的方法?不需要在代码中设置。我以前遇到的视觉故障是由于splitview中的另一个视图没有标记为layer backed。(代码解决方案实际上也有同样的问题,我只是测试不够彻底。)我相应地编辑了我的答案。只需按上面的链接所示设置属性,并确保所有其他相关视图也标记为图层备份。谢谢您的回答。警告消失了。然而,我无法摆脱重新绘制的问题。即使我在Interface Builder中为我拥有的每个视图添加了一个核心动画层。最后,我在NSWindowController中执行了以下操作:
self.contentViewController!。view.wantsLayer=true