Re: is there a way to determine if an NSButton is toggleable ?
Re: is there a way to determine if an NSButton is toggleable ?
- Subject: Re: is there a way to determine if an NSButton is toggleable ?
- From: Jeff Nadeau <email@hidden>
- Date: Mon, 20 Aug 2018 16:39:06 -0700
NSButton is interesting in that it separates out the state (e.g.
`isHighlighted` and `state`) from the presentation of that state. The state
manipulation behavior is totally uniform, i.e. the `state` property always
toggles between Off and On when any button is clicked. Most buttons aren't
configured to draw differently when On, so you don’t notice it.
Subclassers often just ignore this and implement whatever drawing behavior they
want, but if you want to be sensitive to the configuration, you’ll want to
check the showsStateBy mask on the cell.
• For a Toggle button, which exchanges contents based on state, the
NSContentsCellMask bit will be set.
• For a On/Off button, which reflects the state in the button artwork, the
NSChangeBackgroundCellMask bit will be set.
It’s legal for a button cell to have any combination of bits configured, but
none of the built-in NSButtonTypes set both at once.
- Jeff
> On Aug 20, 2018, at 3:04 AM, Guillaume Laurent <email@hidden>
> wrote:
>
> Hi all,
>
>
> For a custom UI I’ve had to write a custom control deriving from NSButton,
> which highlights itself in a special way on mouse-over. In the method which
> does the highlighting, I check if the button’s state is either .on or .off,
> so I know which title or alternateTitle to display. But I realized that, no
> matter the button's type, the state is always toggled on click. That is, even
> if the button’s type is set to MomentaryPushIn, the button’s state is toggled
> after a click. I’d have thought that this was the case only for
> OnOff/Toggle/Switch… types.
>
> Since there is no NSButton.type getter, is there a way to determine if the
> button’s type is toggleable or not ? And what is the reason for switching
> state for types like MomentaryPushIn ?
>
>
> Thanks,
>
> Guillaume.
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden