viewDidLoad no NSViewController?

no iPhone eu faço UIViewController viewDidLoad e escrevo algum código de configuração para configurar a visão.
Mas como posso fazer isso no NSViewController?
Eu tentei com loadView mas não funciona … Talvez eu faça algo errado eu não sei …

PS: Acabei de começar com a programação OSX / iOS, então desculpe se eu pedir algo estúpido 🙁

A partir do OS X 10.10, o viewDidLoad está disponível e é suportado no NSViewController .

Antes disso, você tinha que ir por essa pepita nas notas de lançamento do Snow Leopards:

Conselhos para pessoas que estão procurando methods -viewWillLoad e -viewDidLoad no NSViewController

Mesmo que o NSWindowController tenha os methods -windowWillLoad e -windowDidLoad para você replace a class NSViewController introduzida no Mac OS 10.5, não possui os methods -viewWillLoad e -viewDidLoad correspondentes. Você pode replace – [NSViewController loadView] para personalizar o que acontece imediatamente antes ou imediatamente após o carregamento da ponta feito por um controlador de visualização.

Eu descobri em poucos minutos de postar meu comentário. Adicionando minha descoberta como resposta, porque é um exemplo que está faltando nos documentos. O código abaixo fornecerá o método viewDidLoad desejado. É tão fácil de uma forma que eu me pergunto por que a Apple ainda não implementou no OS X.

 - (void)viewWillLoad { if([NSViewController instancesRespondToSelector:@selector(viewWillLoad)]) { [super viewWillLoad]; } ... } - (void)viewDidLoad { if([NSViewController instancesRespondToSelector:@selector(viewWillLoad)]) { [super viewDidLoad]; } } - (void)loadView { BOOL ownImp = ![NSViewController instancesRespondToSelector:@selector(viewWillLoad)]; if(ownImp) { [self viewWillLoad]; } [super loadView]; if(ownImp) { [self viewDidLoad]; } } 

Fonte original: http://www.cocoabuilder.com/archive/cocoa/195802-garbage-collection-leaks-and-drains.html

A partir do OSX 10.10 (Yosemite), existe agora um -viewDidLoad , -viewWillAppear , -viewDidAppear , -viewWillDisappear no NSViewController . Veja WWDC 2014 – Storyboards and Controllers na session OS X para mais informações, para descobrir quando cada um deles é chamado, etc.

Aqui está o bit relevante dos documentos de header 10.10 sobre -viewDidLoad:

Chamado depois que a exibição foi carregada. Para os controladores de visualização criados no código, isso é depois do -loadView. Para os controladores de visualização desarquivados de uma ponta, isso ocorre depois que a visualização é configurada. O padrão não faz nada.

 - (void)viewDidLoad NS_AVAILABLE_MAC(10_10); 

por que você não tenta isto:

 - (void) awakeFromNib{ //setup code NSLog(@"hello there"); } 

Parece que em 10.10, viewDidLoad está agora em NSViewController.

hmm na verdade eu também faria isso …

 - (void)viewWillLoad { if (! bool_viewwillload) { // execute the code bool_viewwillload = true; } } - (void)viewDidLoad { if (! bool_viewdidload) { // execute the code bool_viewdidload = true; } } 

e, em seguida, basta fazer a exibição de carga como esta

 - (void)loadView { [self viewWillLoad]; [super loadView]; [self viewDidLoad]; }