Cocoa 将CALayer用作其他NSView的背景

Cocoa 将CALayer用作其他NSView的背景,cocoa,core-animation,calayer,nsview,Cocoa,Core Animation,Calayer,Nsview,我有一个应用程序,在窗口中有一个NSTableView。我想使用CALayer作为整个窗口和表视图的背景。到目前为止,在我所有的实验中,CALayer总是画在NSTableView上,这不是我想要的效果。有没有办法让这项工作,或者我只是因为层托管视图与NSView的性质而运气不佳 我的测试设置是一个窗口,其中包含常见的NSScrollView/NSTableView组合,以及后面按视图顺序排列的同级NSView。NSView设置为层宿主,其中包含我的自定义层(仅包含背景色集的层)。我尝试过将窗口

我有一个应用程序,在窗口中有一个NSTableView。我想使用CALayer作为整个窗口和表视图的背景。到目前为止,在我所有的实验中,CALayer总是画在NSTableView上,这不是我想要的效果。有没有办法让这项工作,或者我只是因为层托管视图与NSView的性质而运气不佳

我的测试设置是一个窗口,其中包含常见的NSScrollView/NSTableView组合,以及后面按视图顺序排列的同级NSView。NSView设置为层宿主,其中包含我的自定义层(仅包含背景色集的层)。我尝试过将窗口的内容视图设置为层备份,以及将表视图本身设置为层备份,以及将NSScrollView包装到层备份的NSView中。结果总是一样的


感谢您提供的任何见解。

这很简单。所有重叠视图或图层应为图层背景或图层主体,以便正确排序

您可以设置
[tableview SetWantLayer:是]


或者在编辑界面时只需在“图层”选项卡中进行检查。

您测试过吗?在我使用NSScrollView/NSTableView进行的测试中,两者都设置为层备份,CALayer仍然显示在它们的顶部。您是否尝试在初始化后重新排列它们?在awakeFromNib?例如,您可以按正确的顺序将addSubview发送到他们的superview。并确保superview也有层备份。