viewDidLoad 上的 NSView alpha 不显示

NSView alpha on viewDidLoad doesn't display

我有一个自定义 NSView,我在 viewDidLoad 中设置了 isEnabled 标志,但它没有以 0.5 alpha 显示,即使正确设置了 isEnabled 并且在 drawRect 中为自定义视图调用了正确的代码。

只要我单击同一个视图控制器中的文本字段,视图 alpha 就会改变。

这里是viewDidLoad中调用的代码

        forceOutput.isEnabled = true

这里是drawRect调用的代码

        // is the view enabled?
    if isEnabled {

        // alpha should be full (opaque)
        self.alphaValue = 1.0

    } else {

        // make the view slightly transparent
        self.alphaValue = 0.5
    }

drawRect 中设置 alpha 通常在渲染过程中为时已晚。如果设置 alpha,请在调用 drawRect 之前执行。也许在 viewDidLoad 中设置 alpha。或者,更好的是,为设置 alpha 的 isEnabled 属性 使用 didSet。但不要在 drawRect 中这样做。