O storyboard do OS X chama viewDidLoad antes do applicationDidFinishLaunching

Criei um aplicativo Mac OS X no Xcode usando storyboards. Por alguma razão, oapplicationDidFinishLaunching O método no AppDelegate está sendo chamado apósviewDidLoad nos NSViewControllers. Assim como nos aplicativos para iOS, penseiviewDidLoad deve ser chamado antesapplicationDidFinishLaunching? Os storyboards nos aplicativos OS X inicializam os controladores de exibição antes que o aplicativo seja iniciado?

Estou usando oapplicationDidFinishLaunching para registrar as configurações padrão nos NSUserDefaults. Infelizmente, o registro dos valores padrão está acontecendo após o carregamento das visualizações no storyboard. Portanto, quando eu configuro a visualização em cada controlador de visualização usandoviewDidLoad, os dados padrão no NSUserDefaults não foram definidos. Se eu não posso usarapplicationDidFinishLaunching registrar NSUserDefaults nos aplicativos de storyboard do OS X, então como eu defino os padrões antesviewDidLoad é chamado?

Para corrigir esse problema, noMain.storyboard no Xcode, desativei "Is Initial Controller" na janela principal. Atribuí um ID do storyboard à janela principal como "MainWindow". Em seguida, no AppDelegate, digitei o seguinte código:

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    func applicationDidFinishLaunching(aNotification: NSNotification) {

        let storyboard = NSStoryboard(name: "Main", bundle: nil)
        let mainWindow = storyboard.instantiateControllerWithIdentifier("MainWindow") as! NSWindowController
        mainWindow.showWindow(nil)
        mainWindow.window?.makeKeyAndOrderFront(nil)

    }
}

O aplicativo não falha, mas agora a janela nunca aparece. A imagem a seguir mostra o storyboard com o qual estou trabalhando:

questionAnswers(4)

yourAnswerToTheQuestion