Search code examples
macoscocoansbutton

how to set background color of NSButton OSX


I want to set the background color of NSButton.There was nothing in the attribute inspector so i was wondering if there was any way to do it programmatically?


Solution

  • System controls will need to follow the Apple look&feel, so you cannot easily change the background colour. If you want to accomplish this, you'll need to subclass NSButton and overwrite the drawRect: method. The downside is that you'll also need to handle the text drawing, and possibly different rendering based on button state.

    Edit. Actually, you'll need to subclass the NSButtonCell class for the drawing stuff, more info can be found here: https://developer.apple.com/library/prerelease/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSButtonCell_Class/index.html#//apple_ref/doc/uid/20000093-SW15