Skip navigation.
 
mlRe: NSButton Subclass - 2 states plus tracking image
FROM : Ken Ferry
DATE : Sat Feb 23 18:42:15 2008

Hi Trygve,

I don't you should override -value or anything like that. NSOnState 
and NSOffState should do fine.

You should draw your pressed art if and only if -isHighlighted is true.

It's probably appropriate to subclass NSButtonCell for this and draw 
what you like. In IB3, you can select the cell from a button and 
choose a custom subclass.

Concerning what to override, -drawWithFrame:inView: is the top level 
drawing method for cells, the analog of -drawRect:. -
drawBezelWithFrame:inView: is called from -drawWithFrame:inView:, and 
is used to draw the part of a button that interior text and images sit 
on. This the glassy looking part of a standard aqua push button, for 
example. Finally, -drawInteriorWithFrame:inView: is also called from -
drawWithFrame:inView:, and this method draws the text and/or images 
that sit on top of the bezel.

-Ken

On Feb 23, 2008, at 4:19 AM, Trygve Inda <<email_removed>> wrote:

> I need an NSButton with 5 different graphics and two states:
>
> State 0  (enabled & disabled graphics)
> State 1  (enabled & disabled graphics)
> Pressed/Tracking state
>
> I was thinking to subclass NSButton and in IB use "Momentary Change" 
> so that
> I can set the alt image to always be my Pressed/Tracking state and the
> subclass will change the main image to one of the other 4 images as 
> needed.
>
> The problem I see is that Momentary Change buttons are really single 
> state
> so I think my action method for the button would have to also toggle 
> a value
> variable and I may need to override value/setValue to use my custom 
> value.
>
> If I set up a two state button, how can I provide a custom tracking 
> image...
> Eg when drawRect is called, how can I tell that my button is being 
> pressed
> and tracked?
>
> Is there an existing class out there that will just do this? I 
> haven't come
> across one.
>
> Thanks,
>
> Trygve
>
>
>
>
> _______________________________________________
>
> Cocoa-dev mailing list (<email_removed>)
>
> 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:
> http://lists.apple.com/mailman/options/cocoa-dev/<email_removed>
>
> This email sent to <email_removed>

Related mailsAuthorDate
mlNSButton Subclass - 2 states plus tracking image Trygve Inda Feb 23, 13:19
mlRe: NSButton Subclass - 2 states plus tracking image Ken Ferry Feb 23, 18:42
mlRe: NSButton Subclass - 2 states plus tracking image Trygve Inda Feb 24, 00:02
mlRe: NSButton Subclass - 2 states plus tracking image Mike Abdullah Feb 24, 20:06