On 14 Oct 2008, at 1:19 pm, James Walker wrote:

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.


I believe "last" means "highest numbered", i.e. a spatial index, not a temporal one.


You can always subtract the previous selection from the current one to find what changed:

NSMutableIndexSet* changedSel = [[table selectionIndexes] mutableCopy];
[changedSel removeIndexes:mPreviousSel];
mPreviousSel = [table selectionIndexes];


I do wonder why you need to know though. I wouldn't rely too much on a dynamic quality of a changing selection - better to rely only on the static selection, which you can query at any time.

hth,


Graham
_______________________________________________

Cocoa-dev mailing list ([email protected])

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