On Oct 13, 2011, at 13:44 , Luc Van Bogaert wrote:

> Thanks, I got this working in one 'direction', ie. when the selection in the 
> table is changed, this is reflected in my UI and the 'selected' Dot objects 
> are drawn in a different color. For this, I decided to use a 
> NSMutableIndexSet 'dotSelectionIndexes' property in my model object, bound to 
> the array controller's 'selectionIndexes' binding.

… bound *from* … ;)

> But I'm afraid this still remains a little blurry on how to get the binding 
> work in the other direction. Meaning, I would like to click a Dot object in 
> my UI to select it, and this should change the selection in the table, 
> resulting in turn in the Dot being redrawn with a different color.
> 
> I was hoping that by just adding or replacing the contents of my 
> 'dotSelectionIndexes' ivar (hence the choice for a NSMutableIndexSet) with 
> the index of the clicked Dot, would trigger a selection change in the table 
> because of the binding. It seems this doesn't work. So, obviously I'm still 
> missing something.

So close! A simple NSMutableIndexSet property isn't KVO compliant, but the 
array controller bound *to* it is watching with KVO, so the thing fizzles.

Use a NSIndexSet property instead of a NSMutableIndexSet, and change the 
property by assigning it a new (immutable) index set -- that is, via the setter.

This means that you'll create many NSIndexSet objects at times, but unless you 
have vast numbers of Dot objects this is not likely to make a measurable impact 
on performance. If it did, it's not that hard to use a NSIndexSet property 
backed by a NSMutableIndexSet ivar, along with some non-standard non-KVC 
accessors your Dot objects would use to update the property, but you'd have to 
generate the requisite KVO notifications manually, and write a custom setter.


_______________________________________________

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 arch...@mail-archive.com

Reply via email to