Re: Easier way to make NSView subclasses refresh on a property change?
Re: Easier way to make NSView subclasses refresh on a property change?
- Subject: Re: Easier way to make NSView subclasses refresh on a property change?
- From: Keary Suska <email@hidden>
- Date: Wed, 03 Feb 2016 08:31:34 -0700
> On Feb 2, 2016, at 11:05 PM, Graham Cox <email@hidden> 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 (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