由层支持的NSView子类在其非层支持的superview上导致z-index问题

时间:2015-06-18 08:17:24

标签: swift cocoa calayer nsview swift-playground

我正在尝试了解层支持的NSView如何工作。我在游乐场内创建了以下代码。

master

基本上我已经创建了一个支持图层的NSView子类。然后我将这个子类添加到非图层支持的containerView中。我还将一个NSTextField添加到containerView中,方法是将它显式地放在层支持的NSView子类之上。

我的目标是让NSTextField显示在图层支持的视图上方。但是,在助理编辑器中,NSTextField视图显示在图层支持的视图下方。有人可以帮助理解为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

在与这个问题进行了很多争斗后,我发现我必须设置

label.wantsLayer = true
label.layerContentsUpdatePolicy = .OnSetNeedsDisplay

使z-index正确。我仍然不确定为什么会这样,因为label不是MyView视图层次结构的一部分,而是更广泛的containerView的一部分,它不是图层支持的。