Borderless NSButton turns gray when clicked
Asked Answered
E

3

31

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.

Ennis answered 26/9, 2010 at 11:46 Comment(0)
E
70

Make your button type as NSMomentaryChangeButton.

[myBtn setButtonType:NSMomentaryChangeButton];

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

Extinguish answered 11/10, 2012 at 11:56 Comment(4)
And what else? Could you add some more informatio. Check this metaSO question and Jon Skeet: Coding Blog on how to give a correct answer.Clerk
Edited my answer. There is nothing more than this.Extinguish
Doesn’t worked for me, instead @Sean’s answer is currently leading to the right direction.Dorcia
FYI NSMomentaryChangeButton is now deprecated and replaced by NSButtonTypeMomentaryChange.Fulminate
T
14

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.

Tears answered 4/10, 2010 at 14:51 Comment(1)
I was searching a long time for the flags. So here is the solution as an addendum (thx to Sean Rich very much for this help):[self.button.cell setShowsStateBy:NSPushInCellMask]; [self.button.cell setHighlightsBy:NSContentsCellMask]; if you change BOTH masks, only your graphics will be shown as specified in IB.Burner
H
0

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.

Harlamert answered 8/1, 2017 at 19:25 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.