On Mar 26, 2013, at 12:58 PM, Chris Tracewell <ch...@thinkcl.com> wrote:

> On Mar 26, 2013, at 12:38 PM, Quincey Morris 
> <quinceymor...@rivergatesoftware.com> wrote:
> 
>> 2. Redeclare the "delegate" property:
>> 
>>      @interface TKOutlineView : NSOutlineView {}
>>      @property (nonatomic,readonly) id<TKOutlineViewDelegate> delegate;
>>      @end
>> 
>>      @implementation TKOutlineView
>>      @dynamic delegate;
>>      …
>>      [[self delegate]  outlineView:self enterKeyPressedForRow:[self 
>> selectedRow]];
>>      …
>> 
>> The @dynamic statement says "I don't have an implementation of the 
>> 'delegate' property in this class, but that's just fine because it's already 
>> implemented (in my superclass)".
> 
> Aha, success. Thank you - a very elegant and sensible solution.
> 
> CT


If code expecting an NSOutlineView receives a TKOutlineView instance it may 
break or behave unexpectedly since it may well try to set a delegate conforming 
to <NSOutlineViewDelegate> but you have made your class require a delegate 
conforming to the more specific <TKOutlineViewDelegate>.

This is why I earlier suggested declaring a -customDelegate (or whatever you'd 
like to call it) property that would not interfere with the expected delegate 
behavior.

-Conrad
_______________________________________________

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

Reply via email to