Custom button cells for NSMatrix
Hi, I'm trying to make a custom cell object for NSMatrix which behaves like radio button, this is, when you press the second cell, the second cell is highlighting still. Would you tell me which method I need to override? Thank you. Norio ___ 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]
Re: Custom button cells for NSMatrix
This is actually quite difficult. I can send you details later today. In my case, I needed accessibility and mimic the Aqua radio buttons in terms of all their behaviors. I ended up subclassing NSMatrix and NSActionCell. I could not get a subclass of NSButtonCell in an NSMatrix to work completely. Sent from my iPhone On Oct 20, 2008, at 6:19 AM, norio [EMAIL PROTECTED] wrote: Hi, I'm trying to make a custom cell object for NSMatrix which behaves like radio button, this is, when you press the second cell, the second cell is highlighting still. Would you tell me which method I need to override? Thank you. Norio ___ 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/rsharp%40mac.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]
Re: Custom button cells for NSMatrix
Highlighting each cell in a matrix will let you change the image for it. On 20 Oct 2008, at 12:19:04, norio wrote: Hi, I'm trying to make a custom cell object for NSMatrix which behaves like radio button, this is, when you press the second cell, the second cell is highlighting still. Would you tell me which method I need to override? Thank you. Norio ___ 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]
Re: Custom button cells for NSMatrix
On Oct 20, 2008, at 6:23 AM, Ricky Sharp wrote: This is actually quite difficult. I can send you details later today. In my case, I needed accessibility and mimic the Aqua radio buttons in terms of all their behaviors. I ended up subclassing NSMatrix and NSActionCell. I could not get a subclass of NSButtonCell in an NSMatrix to work completely. I originally attempted to create a custom radio button control around Nov 2004. You can search the archives for a thread back then titled Tracking behavior of cells in NSMatrix. There seemed to be some special code going on between NSMatrix and NSButtonCell that I could not duplicate. There are probably many private methods at work. Anyhow, my final solution was to do this: subclass NSMatrix (this will be your radio button group) In that subclass, I implemented mouseDown: to do the following: - call convertPoint:fromView: to get the view's point that was clicked - call getRow:column:forPoint: to see if point clicked any cells - if it did, call cellAtRow:column: to get the cell instance. Then it got tricky... if the matrix didn't yet have a keyCell, I set the key cell to the one just clicked I then fell into a local tracking loop by sending trackMouse:inRect:ofView:untilMouseUp: to the cell. If the mouse was released inside the bounds of the cell being tracked... - set the state of the original cell to NSOffsate and set the state of the tracked cell to NSOnState. else... - set the key cell to the original key cell before tracking was started. Then, in a subclass of NSActionCell, I implemented: trackMouse:inRect:ofView:untilMouseUp: I maintained a flag in that class so I could query if the mouse was released in its bounds or not (used by the matrix's mouseDown: code above). The subclass of NSActionCell of course handled all custom drawing too depending on state. This implementation (plus more code not shown) gave me: - custom drawing - exact Aqua behaviors when dealing with mouse or full keyboard access - bindings integration (e.g. selectedRadioTag) - accessibility hooks ___ Ricky A. Sharp mailto:[EMAIL PROTECTED] Instant Interactive(tm) http://www.instantinteractive.com ___ 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]