On 2013 Oct 19, at 03:38, jonat...@mugginsoft.com wrote:

> I don't know if this is a common technique but I use it regularly to track 
> binding changes.
> 
> - (void)setValue:(id)value forKeyPath:(NSString *)keyPath
> {
>    // all bindings that reference self (such as self.representedObject.xxx)
>    // will pass through this method   
>    if ([keyPath rangeOfString:@"self.representedObject."].location != 
> NSNotFound) {
>        [self.document updateChangeCount:NSChangeDone];
>    }
>    [super setValue:value forKeyPath:keyPath];
> }

That's interesting and I've never seen it done.

I'd call it a variation of writing custom accessors for each attribute.  Custom 
accessors for each attribute have the advantage of reliably catching all model 
changes, not just those driven by Cocoa Bindings.  But your technique is way 
less code, by a factor of the number of attributes, and requires zero 
maintenance.


_______________________________________________

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to