我在网上看到人们指的是NSView的backgroundColor。我需要将自定义backgroundColor设置为我的NSView,但我没有看到该属性。我无法在代码或IB中看到它。我无法设置简单NSView的背景颜色。
我能错过什么?
答案 0 :(得分:4)
他们必须考虑UIView
,它具有backgroundColor
属性。 NSView
不具有backgroundColor
属性。
您必须以其他方式实现效果,例如,通过子类化NSView
。
答案 1 :(得分:1)
奇怪的是,NSView没有提供这个(叹气)。我使用了一个我在所有macOs项目中编写的一致的类。只需将IB中Identity Inspector选项卡中的CustomView类更改为ColorView即可。然后,您将能够在属性检查器中设置背景颜色,就像您对UIView一样。这是代码,希望这有帮助!
import Cocoa
class ColorView: NSView
{
@IBInspectable var backgroundColor:NSColor?
required init?(coder decoder: NSCoder)
{
super.init(coder: decoder)
wantsLayer = true
}
override init(frame frameRect: NSRect)
{
super.init(frame: frameRect)
wantsLayer = true
}
override func layout()
{
layer?.backgroundColor = backgroundColor?.cgColor
}
}
答案 2 :(得分:0)
您可以通过视图层访问它,例如(在斯威夫特):
view.layer?.backgroundColor = NSColor.blue.cgColor
奇怪的是它可以在xib中设置。在视图的标识检查器中,使用类型颜色添加用户定义的运行时属性backgroundColor
。