Sto tornando allo sviluppo Cocoa sul Mac dopo un lungo periodo di lavoro con iPhone. La mia precedente esperienza con Cocoa su Mac è stata solo un piccolo strumento. Sto cercando di costruire qualcosa di serio.Architettura dell'applicazione Cocoa su Mac OS X
Guardando una moderna applicazione Cocoa come iPhoto (o Mail or Things o ....) molte app usano l'approccio basato su Single-Window, Source-List. Sto cercando di spiegarmelo meglio che posso perché sembra offrire una buona esperienza. Tuttavia, sto avendo un piccolo problema. Ecco come penso che dovrebbe guardare, ma mi chiedo come gli altri lo stanno facendo, e che cosa è davvero il modo migliore:
Punto di partenza della app è un oggetto AppDelegate che, dopo aver lanciato, crea una finestra [Controller?] Da un pennino, insieme all'impostazione dei suoi dati (da, ad esempio, CoreData)
WindowController carica una finestra che in pratica contiene solo un NSSplitView.
Il lato sinistro della vista split ha un NSTableView o NSOutlineView che è impostato per avere lo stile SourceList.
La parte destra ha il contenuto principale dell'app, a seconda di quale elemento della vista tabella è selezionato.
Vorrei assumere da qualche parte (dove?) Ci sono NSViewControllers gestiscono ciascuno dei diversi punti di vista che appariranno nella parte destra (si pensi come iPhoto ha tutte le foto, eventi, volti, luoghi, ecc e immagino potrebbero apparire tutti in pennini diversi ... è corretto?).
Questi controller di vista sono probabilmente associati all'elenco di origine sulla sinistra .. come funziona (l'elenco di origini è supportato da un NSArrayController di NSViewControllers forse?).
In ogni caso, quelli sono i miei pensieri, sono completamente fuori base o ...? Ho cercato sul Web, ho trovato questo post here e ho guardato qualche codice sorgente Apple ma non riesco a spiegarmelo. Qualsiasi guida sarebbe gradita.
Ho sicuramente pensato molto e penso che funzioni bene per la mia situazione. Penso che ogni visione diversa sarebbe abbastanza diversa da giustificare il proprio pennino, ma di nuovo non ne sono sicuro. Quando lavoro con iPhone ho usato raramente InterfaceBuilder, tuttavia con Bindings che è così ben integrato con esso, penso che sia ora di iniziare a usarlo di più. Ho letto anche gli articoli di Cathy, ma è ancora un altro strattone in una direzione diversa, da qui la mia confusione su come dovrebbe funzionare. – jbrennan
La vera domanda non è quanto siano diverse le visualizzazioni, ma a cosa le stai usando per: quali oggetti del modello inserirai. Se le due viste mostrano diversi tipi di cose, dovrebbero essere viste diverse, ciascuna con il proprio pennino. –
Giusto, sarebbero pennini diversi perché mostrano diversi tipi di cose. Come funzionerebbe la commutazione dei pennini? Quando seleziono una riga diversa nel mio Sourcelist, come viene attivato un nuovo pennino? (Inoltre, dovrebbe caricare un nuovo ViewController, o semplicemente scambiare la vista sul lato destro?) – jbrennan