Así que estoy empezando a aprender a usar Cocoa. Creo que casi lo tengo, pero estoy obsesionado con la creación y el cambio de vistas. Estoy reescribiendo un juego que hice hace un rato para practicar. Todo lo que quiero es una ventana (preferiblemente no redimensionable) y quiero poder cambiar las vistas para diferentes pantallas en el juego.¿Cómo cambio las Vistas en una aplicación Cocoa?
Primero, tengo el menú principal (Iniciar juego, Puntuaciones altas, Salir). Entonces necesito una ventana para cada pantalla (pantalla de juego, pantalla de puntuación más alta).
Lo que me confunde es cómo diseñar esto. Busqué NSViewController pensando que administra las vistas, pero no es así. Solo administra una vista al cargarla realmente. No entiendo por qué necesitaría usar NSViewController entonces. ¿No podría simplemente tener una clase de ventana que contiene múltiples subclases de NSView y cargarlas así? No estoy seguro de entender el propósito del ViewController.
¿Mi Window Class realmente necesita la subclase NSWindowController? Intenté seguir el ejemplo del ejemplo ViewController de Apple y tiene una clase de controlador de ventana que es una subclase de NSWindowController. No veo cuál era el propósito de subclasificar eso. Parece que todo NSWindowController agrega - initWithPath:(NSString *)newPath
pero no veo el uso en eso cuando puedo simplemente editar el archivo plist para abrir la ventana en el inicio. El ejemplo de Apple también tiene una variable NSView y una variable NSViewController. ¿No solo necesitas una variable para almacenar la vista actual?
Gracias de antemano chicos, estoy muy confundido sobre cómo funciona esto.
Estoy haciendo Cocoa en el escritorio ahora mismo. –
misma interfaz disponible en el escritorio (NSView) –
Entonces, lo que me gustaría saber es por qué debería usar NSViewController. ¿Debería? ¿Debo hacer una subclase de NSWindowController con una variable NSView y NSViewController? No estoy seguro de qué es realmente necesario para hacer una ventana con vistas intercambiables. Según entiendo, no necesito NSViewController, pero no lo sé, ya que el ejemplo de Apple lo usó y se supone que te facilitará las cosas. –