Borderless NSButton turns gray when clicked

2019-01-13 20:12发布

问题:

I am making a little application with three NSButtons with an image set. These buttons have no border nor background. However, when I click a button it turns into a gray rectangle.

How can I fix this? Thanks.

回答1:

Make your button type as NSMomentaryChangeButton.

[myBtn setButtonType:NSMomentaryChangeButton];

If you use NSMomentaryPushInButton then you may get gray rectangle over the button when click.



回答2:

You should be able to adjust this by changing the state mask. To do so, check out the highlightsBy: and showsStateBy: properties of NSButtonCell - they are for setting the press effect and displaying the effect respectively. The applicable constants for these methods are in the NSCell reference page.



回答3:

If you are using an NSBox, make sure your button inside of NSBox in the hierarchy. Then use 'momentary push in' as your button type. The button will dim when clicked but there will be no border.

When I used NSBox with NSButton on the same hierarchy level, I would see the border when clicked.