Estoy volviendo al desarrollo de Cocoa en la Mac después de una larga temporada trabajando en el iPhone. Mi experiencia previa con Cocoa en la Mac acaba de ser pequeñas herramientas pequeñas. Estoy buscando construir algo serio.Arquitectura de la aplicación Cocoa en Mac OS X
Al mirar una aplicación moderna de Cocoa como iPhoto (o Correo o Cosas o ...) muchas aplicaciones utilizan el enfoque basado en una lista de una sola ventana. Estoy tratando de entender esto lo mejor que puedo porque parece proporcionar una buena experiencia. Sin embargo, estoy teniendo un pequeño problema. Así es como yo creo que debería ser, pero me pregunto cómo otros lo están haciendo, y lo que es realmente la mejor manera:
punto de la aplicación de partida es un objeto AppDelegate que, tras el lanzamiento, crea una ventana [¿Controlador?] Desde una punta, junto con la configuración de sus datos (desde, por ejemplo, CoreData)
WindowController carga una ventana que esencialmente solo tiene una NSSplitView.
El lado izquierdo de la vista dividida tiene un NSTableView o NSOutlineView que está configurado para tener el estilo SourceList.
El lado derecho tiene el contenido principal de la aplicación, dependiendo del elemento de la vista de tabla que se seleccione.
quiero suponer algún lugar (¿dónde?) Hay NSViewControllers la gestión de cada uno de los diferentes puntos de vista que aparecerán en el lado derecho (piense cómo iPhoto tiene todas las fotos, eventos, caras, lugares, etc. y me imagino todos podrían aparecer en diferentes plumillas ... ¿es correcto?).
Esos controladores de vista están probablemente vinculados a la lista de fuentes de la izquierda ... ¿Cómo funciona eso (la lista de fuentes está respaldada por un NSArrayController de NSViewControllers quizás?).
De todos modos, esos son mis pensamientos, ¿estoy completamente fuera de base o ...? He buscado en la web, encontré esta publicación here, y he visto algún código fuente de Apple, pero parece que no puedo entenderlo. Cualquier orientación sería bienvenida.
Ciertamente lo he pensado mucho, y creo que funciona bien para mi situación. Creo que cada vista diferente sería lo suficientemente diferente como para garantizar su propia punta, pero una vez más, no estoy seguro. Al hacer el trabajo de iPhone, raramente uso InterfaceBuilder, sin embargo, con Bindings tan bien integrado, creo que es hora de que empiece a usarlo más. También leí los artículos de Cathy, pero es otro tirón en una dirección diferente, de ahí mi confusión sobre cómo debería funcionar. – jbrennan
La verdadera pregunta no es qué tan diferentes son las vistas, sino para qué las estás usando: qué objetos de modelo pondrás en ellas. Si las dos vistas muestran diferentes tipos de cosas, deberían ser vistas diferentes, cada una con su propio plumín. –
Correcto, serían diferentes puntas porque muestran diferentes tipos de cosas. ¿Cómo funcionaría el cambio de punta? Cuando selecciono una fila diferente en mi Sourcelist, ¿cómo se activa una nueva plumilla? (Además, ¿debería cargar un ViewController nuevo, o simplemente cambiar la vista del lado derecho?) – jbrennan