簡體   English   中英

當isEnabled為false(禁用)時,避免使NSButton透明/透明

[英]Avoiding making a NSButton transparent / see-through when isEnabled is false (disabled)

如果禁用了常規NSButton似乎是透明的。

在此處輸入圖片說明

該圖顯示了帶有“推”式按鈕

但是,我想禁用沒有透明度的按鈕。

我試圖以編程方式將alphaValue設置為1.0但看來NSButtons cell (controlView)以及所有其他子視圖已經處於1.0的alphaValue了。

另外,沒有什么可以像在iOS中那樣使用userInteractionEnabledadjustsImageWhenDisabled (在此處都推薦)。

沒有標准透明性的情況下如何禁用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM