我的layer-backed NSView
申请表中有Cocoa
。使用以下代码,整个自定义视图变为透明:
self.layer?.opaque = false
self.layer?.opacity = 0
不幸的是,我需要CALayer
的边框保持可见(目前它已变得透明)。我最好如何只获得边界展示?
我现在已经设法让它运转但我不确定为什么。
我以前认为它不相关,但layer backed NSView
实际上是NSTextField
。这暴露了一个看起来更具影响力的backgroundColor字段"而不是CALayer
设置self.backgroundColor = NSColor.clearColor()
完成了这项工作。
但是,我选择了
层self.wantsLayer = true
wantsUpdateLayer
并返回true updateLayer()
方法现在的问题是为什么上述工作和不使用clearColor
上的CALayer
?
答案 0 :(得分:5)
如何将图层背景设置为清晰颜色?
self.layer?.backgroundColor = NSColor.clearColor().CGColor
我认为您甚至不需要设置opaque
和opacity
。我会删除这些行。
答案 1 :(得分:0)
它是layer-backed NSTextField
而不是常规layer-backed NSView
这一事实似乎很重要......它有自己的背景,它将出现在的前面图层的背景除非您设置以下内容:
self.drawsBackground = false
如果你这样做,那么你确实可以使用NSColor.clearColor().CGColor
作为图层的backgroundColor。
如果不这样做,那么您需要直接设置视图的backgroundColor来控制背景。