Re: Subclassing NSView in Yosemite?
Re: Subclassing NSView in Yosemite?
- Subject: Re: Subclassing NSView in Yosemite?
- From: David Duncan <email@hidden>
- Date: Thu, 06 Nov 2014 08:07:34 -0800
> On Nov 6, 2014, at 6:29 AM, Alex Hall <email@hidden> wrote:
>
> Hello list,
> I've subclassed NSView before, doing all my setup in init withFrame, and it works fine. Now, though, I'm using Swift in Xcode 6.1 to build a project against 10.10, and I'm getting an error that I need to implement initWithCoder:NSCoder.
NSView conforms to NSCoder, which is where this initializer comes from. It is generally used for unarchiving from a nib(xib) or storyboard.
> The problem is that the documentation says nothing about this, so I'm not sure which initializer is called when. That is, where do I put all my setup to ensure it gets called? I'd rather not do it twice, since I'm afraid one or the other initializer could get called when I don't expect it and set things up as though the app had just launched.
>
> I can't find much of anything on this initWithCoder requirement, so I'm at a loss as to where to set things up, and even what to pass the initializer for an NSCoder. I'd appreciate any links or other resources, or just explanations, anyone can provide. Thanks. Oh, here's the page I'm looking at, among many others on Google:
> https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/index.html#//apple_ref/doc/uid/20000014-SW10 <https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/index.html#//apple_ref/doc/uid/20000014-SW10>
Typically you don’t call -initWithCoder:, except to call super implementations. Swift will take care of the latter for you, so you would just need to decode whatever information you need. Of course if your view doesn’t support any additional archiving above and beyond what NSView does, and you will never use it in a nib or storyboard, you can just leave the implementation empty.
>
> --
> Have a great day,
> Alex Hall
> 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
--
David Duncan
_______________________________________________
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