Re: Finding clicked row in NSOutlineView
Re: Finding clicked row in NSOutlineView
- Subject: Re: Finding clicked row in NSOutlineView
- From: James Walker <email@hidden>
- Date: Mon, 13 Oct 2008 19:19:32 -0700
Tito Ciuro wrote:
Hi James,
On Oct 13, 2008, at 6:23 PM, James Walker wrote:
I need to be notified when a row of an NSOutlineView was clicked, and
find out which row. Do I need to subclass it? Just thought I'd ask,
since I've read that new Cocoa programmers might tend to subclass more
than they ought.
The NSOutlineViewSelectionDidChangeNotification is not sufficient,
because in the case of a modified click that causes a multiple
selection, I need to know the individual row that was clicked.
Check - (void)outlineViewSelectionDidChange:(NSNotification *)notification:
- (void)outlineViewSelectionDidChange:(NSNotification *)notification
{
NSInteger row = [mOutlineView selectedRow];
...
}
Don't forget to set the delegate.
Thanks... Hmm, that will usually do the right thing, but I'm not sure it
will always do what I want. Consider this sequence of events:
1. Row 5 is clicked.
2. Row 2 is shift clicked, resulting in rows 2, 3, 4, 5 being selected.
3. Row 3 is shift-clicked, shrinking the selection to 3, 4, 5.
Now, what will [mOutlineView selectedRow] be? The documentation says it
returns "the index of the last row selected or added to the selection".
No row was added to the selection, so what does "last row selected"
mean? If "last" means "most recently", it's unclear, because rows 3
and 4 were selected at the same time. I guess I could experiment.
--
James W. Walker, Innoventive Software LLC
<http://www.frameforge3d.com/>
_______________________________________________
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