> On Feb 2, 2016, at 11:05 PM, Graham Cox <graham....@bigpond.com> wrote: > > Hi all, > > Whenever I make a custom view class, it often has a bunch of properties that > affect the content it renders. So, for each setter that does this, I have to > override the setter, do whatever it normally does plus call > -setNeedsDisplay:YES. > > This gets tedious. > > Is there a good way to automate this for a given set of properties? I > considered overriding -didChangeValueForKey: and checking the key against a > set of exported property names, and that would work, except all my custom > views would then need to subclass this one special kind of view instead of > NSView. Can it be done with a standard NSView? (MacOS) > > A similar requirement applies to CALayer too.
I have had an analogous situation, and my solution, however kludgey, was to have a single property, say a BOOL “refresh”, observe that property, and then use +keyPathForValuesAffectingKey to notify the observer. In your case the observer would call setNeedsDisplay: or whatever was needed. HTH, Keary Suska Esoteritech, Inc. "Demystifying technology for your home or business" _______________________________________________ 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