我在网上到处都能看到人们提到 NSView 的背景颜色。我需要为我的 NSView 设置自定义背景颜色,但我没有看到该属性。我在代码或 IB 中看不到它。我无法设置简单 NSView 的背景颜色。
我会错过什么?
我在网上到处都能看到人们提到 NSView 的背景颜色。我需要为我的 NSView 设置自定义背景颜色,但我没有看到该属性。我在代码或 IB 中看不到它。我无法设置简单 NSView 的背景颜色。
我会错过什么?
他们一定在想UIView
,它确实有一个backgroundColor
属性。 NSView
没有财产。_backgroundColor
您将不得不以其他方式实现您的效果,例如,通过子类化NSView
。
奇怪的是 NSView 不提供这个(叹气)。我在所有 macOS 项目中都使用我自己编写的一个一致的类。只需将 IB 的 Identity Inspector 选项卡中的 CustomView 类更改为 ColorView。然后,您将能够在 Attribute Inspector 中设置背景颜色,就像您设置 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
}
}
您可以通过视图层访问它,例如(在 Swift 中):
view.layer?.backgroundColor = NSColor.blue.cgColor
奇怪的是它可以在xib中设置。在视图的身份检查器中,添加 User Defined Runtime AttributebackgroundColor
和 Type 颜色。