2

如果禁用,常规NSButton似乎是透明的。

在此处输入图像描述

图片显示了一个样式为“push”的按钮

但是,我想禁用没有透明度的按钮。

我尝试以编程方式将其设置为alphaValue1.0但似乎 NSButtons cell(controlView) 以及所有其他子视图的 alphaValue 已经为 1.0。

此外,在 iOS 中,没有什么可以像userInteractionEnabledadjustsImageWhenDisabled(两者都推荐在这里)一样使用。

如何在没有标准透明度的情况下禁用 NSButton?

编辑“纹理按钮”按钮似乎是透明的: 在此处输入图像描述

4

1 回答 1

0

如果您不需要标题,并且会提供您自己的按钮图像,您可以在禁用时使用禁用 's 图像的setImageDimsWhenDisabled透明度。NSButtonCell这是代码:

[buttonCell setImageDimsWhenDisabled:NO];

NSButtonCell是 的子视图NSButton。但正如我所说,标题仍然会“变暗”一点,还有它的背景。但是由于图像如果在背景之上,您将看不到透明背景。

另一种方法(避免子类 NSButton)是拥有自己的按钮状态跟踪变量。当状态被禁用时,关闭任何点击事件。代码示例框架如下:

- (IBAction)clickOnButton {
    static BOOL isEnabled = YES;
    if (isEnabled) {
        // Handle click event here...

    }
    isEnabled = !isEnabled;
}

这可能会在单击时显示突出显示。您也可以禁用突出显示。但是,如果您有很多按钮,这不是一个好主意。如果你有很多按钮,子类 NSButton 是最好的选择。

于 2017-04-06T04:52:27.210 回答