Re: Adding a new type of NSButton
Re: Adding a new type of NSButton
- Subject: Re: Adding a new type of NSButton
- From: Kevin Elliott <email@hidden>
- Date: Wed, 25 Jun 2008 13:13:44 -0700
On Jun 25, 2008, at 12:12 PM, P Teeson wrote:
Environment is Mac OS X 10.4.11 Xcode 2.5
I need a new type of NSButton/NSButtonCell that I am calling an
NSLatchButton.
Once it is pushed it stays pushed - pushing it again does not revert
it back to unpushed state.
(Of course there would be a method to set it to it's unlatched state
but pushing the button would not
invoke that action)
However I'm not sure how to approach this. Should I use categories,
extensions, or subclass or what?
Is this something are going to use in one place only, or is this
something you foresee using in a lot of different places?
If this is something that's a one off control, I'd probably put the
logic in the IBAction rather than subclassing. If you need to use
this a lot of different places/projects then it's probably worth
subclassing. I don't think you can accomplish your goal using
categories (wrong tool).
In terms of what you need to override that would take some
experimentation and thinking. Couple options come to mind- you might
try overriding "setState:" and eating any state changes after the
first. You could also go after the responder chain- possibly in
"mouseDown:".
Other peoples comments about this being a "Controller" problem and not
something that belongs in the Model are somewhat true, but if this is
really a button type your going to use in several places then
subclassing is perfectly appropriate. Also, if it's important to you
that the user not get any click behavior (that is, once the button has
been "set" then clicking on it again has no visible effect on the
control), then I don't think you'll be able to get what you want
without subclassing.
_______________________________________________
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