Re: Handling bindings of an NSControl which forward everything to an NSCell?
Re: Handling bindings of an NSControl which forward everything to an NSCell?
- Subject: Re: Handling bindings of an NSControl which forward everything to an NSCell?
- From: Quincey Morris <email@hidden>
- Date: Tue, 11 May 2010 13:42:01 -0700
On May 11, 2010, at 12:45, Joanna Carter wrote:
> Only if you implement the KVO pattern in the setters:
>
> - (void) setCornerSize:(NSSize) _size
> {
> [self willChangeValueForKey:@"CornerSize"];
> [[self cell] setCornerSize:_size];
> [self didChangeValueForKey:@"CornerSize"];
> }
Um, not so much. :)
In the normal case, setters *should not* call will/didChangeValueForKey, since the entire setter is (invisibly) enclosed in a pair of such calls. It's harmless (AFAIK), because KVO explicitly suppresses the recursion implied by calling them within the setter, but it's absolutely unnecessary. Unless ...
If the property is explicitly marked to not generate KVO notifications automatically, you will of course need to call will/didChangeValueForKey manually. See here:
http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/KeyValueObserving/Concepts/AutoVsManual.html
The *only* case of this you'll run into normally is Core Data: all of its properties are not subject to automatic KVO notification triggering. (Whether it's via 'automaticallyNotifiesObserversForKey:' or via some private mechanism is not documented.)
_______________________________________________
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