我目前正在定製主題NSButton
。我發現的每個教程或指南都需要子類NSButtonCell
,甚至the guide from Apple。如何創建一個自定義的主題NSButton而不創建NSButtonCell的子類?
所有這些似乎都已過時,因爲NSControl
中的所有單元格方法都是deprecated in Yosemite。我還沒有找到任何建議或指導如何使用替代品。
這是唯一的語句,我可以找到:
的NSCell
的逐漸棄用的Mac OS X 10.10採取對 細胞的最終棄用又邁進了一步。不鼓勵對控制單元的直接訪問,並且允許其的方法將在隨後的 版本中被正式棄用。各種單元級API已被提升爲各種控制子類,以便提供對重要功能的無細胞訪問。 NSLevelIndicator,NSTextField,NSSearchField,NSSlider, 和NSPathControl都具有用於此目的的新屬性。基於單元的 現在不推薦使用NSTableViews,而應該使用基於視圖的NSTableViews,而應該使用 。基於矩陣的NS瀏覽器也被棄用,以支持基於項目的接口 。
上NSButton
無話雖然。
NSTextField
支持層支持視圖;因此,我在我的NSButton
上嘗試了相同的方法,但這沒有效果。
var btn = NSButton(NSMakeRect(0, 0, 50, 20))
btn.wantsLayer = true
btn.bordered = false
btn.layer?.backgroundColor = NSColor(calibratedWhite: 0.99, alpha: 1).CGColor
btn.layer?.borderWidth = 1
btn.layer?.borderColor = NSColor(calibratedWhite: 0.81, alpha: 1).CGColor
作爲一個小方面說明,如果您願意,我一直在創建自定義視圖 - 然後在其上創建一個隱形按鈕。節省很多頭痛。 – 2015-02-24 20:48:40
您可以簡單地將您的主題作爲按鈕的背景圖像。 – 2015-02-25 06:47:21
@MattyAyOh看起來很容易,但更像是一個黑客。我不認爲這是做這件事的目的,我想知道預期的方式。但感謝分享這個竅門。 – Afterlame 2015-03-03 15:33:38