Re: Implementing a Slightly Unusual NSTableView
Re: Implementing a Slightly Unusual NSTableView
- Subject: Re: Implementing a Slightly Unusual NSTableView
- From: Peter Zegelin <email@hidden>
- Date: Mon, 21 Apr 2008 20:16:38 +1000
Thanks Graham - I have updated my code as well.
I also think I solved the focus problem. Tried most of the responder
methods without luck so I took a different tack. I realized that I
would only have 3 views that could grab the focus so I created a
global variable 'currentResponder' (will make it local to the window
when I figure out how) and set it in becomeFirstResponder of the other
views. Then in my 'special' tableview if I am clicking on a checkbox I
just call:
[[self window] makeFirstResponder: currentResponder];
to set the focus back to the original view. Works like a treat even if
it seems a bit of a hack.
regards,
Peter
www.fracturedSoftware.com
On 21/04/2008, at 12:36 AM, Graham Cox wrote:
I just noticed a bug in the code I posted - it should be:
- mouseDown:
...
if ([dataCell trackMouse:event inRect:cellFrame ofView:self
untilMouseUp:YES])
{
// call the datasource to handle the checkbox state change as normal
[[self dataSource] tableView:self setObjectValue:[dataCell
objectValue] forTableColumn:theColumn row:row];
}
...
previously I passed dataCell directly, not [datacell objectValue],
and I passed it to the delegate, not the dataSource.
In fact passing <dataCell> works with many cell types such as
buttons and checkboxes because they happen to implement methods such
as stringValue and so on, but if you use a custom cell that returns
something like a colour for example, that doesn't work. The delegate/
datasource mixup is another thing I got away with as usually they
happen to be the same.
To be honest I'm having to sort of guess how the tableview is
actually calling its dataSource, so this could still be wrong, but
so far this handles all the cases I've thrown at it (admittedly not
that many, but includes a variety of standard and custom cells).
G.
_______________________________________________
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