NSView是否有backgroundColor?如果确实如此,我找不到它

时间:2012-06-12 16:23:43

标签: macos cocoa nsview background-color

我在网上看到人们指的是NSView的backgroundColor。我需要将自定义backgroundColor设置为我的NSView,但我没有看到该属性。我无法在代码或IB中看到它。我无法设置简单NSView的背景颜色。

我能错过什么?

3 个答案:

答案 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