常规NSButton
如果被禁用则似乎是透明的。
图片显示了一个带有样式按钮'
的按钮但是,我想要禁用Button 而不用透明度。
我尝试以编程方式将alphaValue
设置为1.0
,但似乎NSButtons cell
(controlView)以及所有其他子视图的alphaValue值已经为1.0。
此外,我可以像在iOS中一样使用userInteractionEnabled
或adjustsImageWhenDisabled
(两者都推荐here)。
如何在没有标准透明度的情况下禁用NSButton?
答案 0 :(得分:0)
如果您不需要标题,并且会提供您自己的按钮图像,则可以使用setImageDimsWhenDisabled
禁用NSButtonCell
图像中的透明度。这是代码:
[buttonCell setImageDimsWhenDisabled:NO];
NSButtonCell
是NSButton
的子视图。但正如我所说,标题仍将“暗淡”一点,以及它的背景。但由于图像如果在背景之上,您将看不到透明背景。
另一种方法(避免子类NSButton)是为按钮设置自己的状态跟踪变量。禁用状态后,关闭任何单击事件。代码示例框架如下:
- (IBAction)clickOnButton {
static BOOL isEnabled = YES;
if (isEnabled) {
// Handle click event here...
}
isEnabled = !isEnabled;
}
点击时可能会显示突出显示。您也可以禁用突出显示。但如果您有许多按钮,这不是一个好主意。如果你有很多按钮,子类NSButton是最好的选择。