2015-04-01 77 views
3

的背景顏色我想設置NSButton.There的背景顏色是沒有在屬性檢查器中,所以如果有任何辦法做到這一點編程我不知道?如何設置NSButton OSX

回答

5

系統控制將需要按照蘋果看起來&的感覺,所以你不能輕易改變的背景顏色。如果你想完成這個,你需要繼承NSButton並覆蓋drawRect:方法。缺點是您還需要處理文本繪圖,並可能根據按鈕狀態進行不同的渲染。

編輯。其實,你需要繼承的繪圖東西NSButtonCell類,更多信息可以在這裏找到:https://developer.apple.com/library/prerelease/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSButtonCell_Class/index.html#//apple_ref/doc/uid/20000093-SW15

3

比繼承你可以使用這樣

NSButton *button = [[NSButton alloc] initWithFrame:frame]; 
[superView addSubView:button]; 
[button setWantsLayer:YES]; 
button.layer.backgroundColor = [NSColor blueColor].CGColor; 

層的方法也可以使一個其他具有該指定顏色的圖像並將該圖像應用於按鈕。

+1

但現在該按鈕的顏色不會在印刷機上改變。 – Shizam 2016-11-04 16:25:40

3

我會建議針對細胞亞類。單元已被棄用,並在出路。

NSButton允許您設置沒有擋板的圖像。

子類的NSView或的NSControl,做自定義繪製和跟蹤鼠標事件和應用主動/主動窗口繪製所有的自定義狀態的狀態是,如果沒有更好的效果。

細胞不知道AutoLayout,所以你應該小心,如果去細胞的土地。

2

使用NSButton的背景層,像這樣:

buttonName.layer.backgroundColor = NSColor.redColor.CGColor; 
+0

只有當您將該按鈕設置爲透明時纔會起作用,這也會導致您丟失標題標籤。 – 2016-06-13 01:00:12