On Aug 6, 2008, at 9:51 PM, Steven W Riggins wrote:
I'm winding my way through KVO, readonly properties and bindings.I have an object which has a bool state. I have a method that toggles that state.I have a button that calls the method that toggles the state. The button has a title, which I've bound to a readonly property, which has a getter that returns a localized label based on the state.So when I change the state, obviously the readonly property doesn't change, and thus the button label does not change.Changing the readonly property to a normal ivar works fine.Is there a way to use a synthesized property in this manner, or is it even proper?
You can solve this in the following two ways (amongst others):(1) Redeclare the property as readwrite in a class extension in your .m file and then use dot syntax or the synthesized setter/getter to set the value.
I.e. .h: @interface Foo : NSObject { BOOL f; } @property(readonly, nonatomic) BOOL f; @end .m @interface Foo() @property(readwrite, nonatomic) BOOL f; @end @implementation Foo @synthesize f; // ... use the setter and getter as needed @end (2) Call willChange/didChange before/after you change the value: - (void) toggle: sender { .... logic ... [self willChangeValueForKey: @"f"]; f = ... new state ...; [self didChangeValueForKey: @"f"]; } b.bum
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ 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 [EMAIL PROTECTED]