El guión gráfico de OS X llama a viewDidLoad antes de applicationDidFinishLaunching
Creé una aplicación para Mac OS X en Xcode usando guiones gráficos. Por alguna razón elapplicationDidFinishLaunching
El método en AppDelegate se llama despuésviewDidLoad
en los NSViewControllers. Al igual que con las aplicaciones de iOS, penséviewDidLoad
se supone que debe llamarse antesapplicationDidFinishLaunching
? ¿Los guiones gráficos en las aplicaciones de OS X inicializan los controladores de vista antes de que la aplicación haya terminado de iniciarse?
Estoy usando elapplicationDidFinishLaunching
Método para registrar la configuración predeterminada en NSUserDefaults. Desafortunadamente, el registro de los valores predeterminados ocurre después de que se cargan las vistas en el guión gráfico. Por lo tanto, cuando configuro la vista en cada controlador de vista usandoviewDidLoad
, los datos predeterminados en NSUserDefaults no se han establecido. Si no puedo usarapplicationDidFinishLaunching
registrar NSUserDefaults en las aplicaciones de guión gráfico de OS X, luego cómo configuro los valores predeterminados antesviewDidLoad
¿se llama?
Para solucionar este problema, en elMain.storyboard
en Xcode, apagué "Is Initial Controller" para la ventana principal. Asigne una ID de guión gráfico a la ventana principal como "Ventana principal". Luego, en AppDelegate, ingresé el siguiente 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)
}
}
La aplicación no se bloquea pero ahora la ventana nunca aparece. La siguiente imagen muestra el guión gráfico con el que estoy trabajando: