2015-11-01 21 views
5

我有一個包含文本字段(NSTextField或NSComboBox)和無邊框按鈕的帶有活力的NSVisualEffectView。這些按鈕位於文本字段上,我想禁用無邊界按鈕上的活力效果,因爲它們應該出現在文本字段的白色背景上。從NSVisualEffectView選擇無邊框NSButton vibrancy

我按照NSVisualEffectView類參考中的建議嘗試做的是將我的NSButton包裝在另一個NSVisualEffectView中,並將其狀態設置爲Inactive。它所做的是以淺灰色背景替換「充滿活力」的背景。

下圖說明了這一點。第一個字段是我嘗試的解決方案,第二個字段顯示無邊界按鈕的默認行爲,作爲NSVisualEffectView的子節點。

enter image description here

我也試過子類NSButton並設置其單元格的背景顏色爲白色或透明的,但我總是灰色的背景。

如何將淺灰色背景更改爲白色或清晰背景? 謝謝

回答

3

經過幾個小時的頭痛,我設法解決了這個問題。該解決方案不需要按鈕被包裝在NSVisualEffectView中。簡單地繼承NSButton並覆蓋allowsVibrancy屬性並將其設置爲false就足夠了。

在斯威夫特:

override var allowsVibrancy: Bool { return false }