EDIT: Peter is right in the comments, this solution only works if an observer is registered for this property. I remember that I did it on CALayer with @dynamic properties, and in this case it works the way you would like. In general, this is not a good solution to your problem.
Assuming your class meets the KVC requirements for the properties you want to trigger a re-look, I would override the -didChangeValueForKey: method to call [self setNeedsDisplay] when the key matches one of your properties. I think this is slightly better than the Peter overriding -setValue: forKey method: because it does not interfere with the normal KVC machine and does not require the box that it mentions.
- (void)didChangeValueForKey:(NSString*)key { if ([@"propertyOne" isEqualToString:Key] || ....) { [self setNeedsDisplay]; } [super didChangeValueForKey:key];
source share