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: Alex Zavatone <email@hidden>
- Date: Wed, 03 Feb 2016 10:44:12 -0500
Set a key value observer for each that would call the refresh method.
If there's a way to cluster them all into a collective set of things that would change (I think there may) I'm interested in hearing about it too.
Would it be possible (or wise) to add them to an array or set and put the observer on that object?
On Feb 3, 2016, at 10:31 AM, Keary Suska wrote:
>
>> 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
_______________________________________________
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