[英]Avoiding making a NSButton transparent / see-through when isEnabled is false (disabled)
如果禁用了常規NSButton
似乎是透明的。
該圖顯示了帶有“推”式按鈕
但是,我想禁用沒有透明度的按鈕。
我試圖以編程方式將alphaValue
設置為1.0
但看來NSButtons cell
(controlView)以及所有其他子視圖已經處於1.0的alphaValue了。
另外,沒有什么可以像在iOS中那樣使用userInteractionEnabled
或adjustsImageWhenDisabled
(在此處都推薦)。
沒有標准透明性的情況下如何禁用NSButton?
如果不需要標題,並且將提供您自己的按鈕圖像,則可以在禁用它時使用setImageDimsWhenDisabled
禁用NSButtonCell
圖像中的透明度。 這是代碼:
[buttonCell setImageDimsWhenDisabled:NO];
NSButtonCell
是的子視圖NSButton
。 但是正如我說的那樣,標題仍然會“變暗”一點,背景也會變暗。 但是由於圖像位於背景頂部,因此您將看不到透明背景。
另一種方法(避免使用子類NSButton)是為按鈕設置自己的狀態跟蹤變量。 禁用狀態后,關閉所有單擊事件。 示例代碼框架如下:
- (IBAction)clickOnButton {
static BOOL isEnabled = YES;
if (isEnabled) {
// Handle click event here...
}
isEnabled = !isEnabled;
}
單擊時可能會顯示突出顯示。 您也可以禁用突出顯示。 但這不是一個好主意,如果您有許多按鈕。 如果您有許多按鈕,則子類NSButton是最佳選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.