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 PROTECTED]> 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 (Cocoa-dev@lists.apple.com)

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/kenferry%40gmail.com

This email sent to [EMAIL PROTECTED]
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to