Cai
Cai

Reputation: 3659

NSButton on NSVisualEffectView: Wrong Background Color

I have a NSVisualEffectView within a NSPopover developed for 10.10.

When subclassing the NSVisualEffectView to have hover background color effect, the borderless button color seems to be different

gray box

I tried setting the backgroundColor of the button cell to clearColor or the same as I used in drawRect: in of the NSVisualEffectView, the former gives wrong color (not filled with blue) and the later still the same with wrong color. (gray box around its border).

CALayer can fix this but is there a way without using it?

Any ideas?

Upvotes: 6

Views: 1475

Answers (2)

Sphere
Sphere

Reputation: 31

This has been open for a long time but I just needed the answer myself and maybe someone else is happy to find this here, answer works only for Mac OS 10.14 and up

button.contentTintColor = .white

By setting the contetTintColor to whatever you might need it will for some reason remove the background color.

Upvotes: 0

Greg Galloway
Greg Galloway

Reputation: 31

After much trial and error, this worked for me:

button.wantsLayer = true
button.layer?.backgroundColor = NSColor.clearColor().CGColor

I've got an NSTableView with NSVisualEffectView style. I created a custom NSTableViewCell class and put these lines in its drawRect method.

Upvotes: 3

Related Questions