3

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

我会错过什么?

4

3 回答 3

4

他们一定在想UIView,它确实有一个backgroundColor属性。 NSView没有财产。_backgroundColor

您将不得不以其他方式实现您的效果,例如,通过子类化NSView

于 2012-06-12T16:44:26.563 回答
1

奇怪的是 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
    }
}
于 2017-12-06T10:18:26.850 回答
0

您可以通过视图层访问它,例如(在 Swift 中):

      view.layer?.backgroundColor = NSColor.blue.cgColor

奇怪的是它可以在xib中设置。在视图的身份检查器中,添加 User Defined Runtime AttributebackgroundColor和 Type 颜色。

于 2017-03-22T21:46:14.897 回答