Domanda

Voglio costruire un App di cacao con un elenco di voci molto simili alla lista ToDo di Things.app ( vedi la screencast ). La questione è se dovrei usare

  1. un TableView,
  2. un CollectionView o
  3. una WebView.

Credo che possa lavorare con tutti loro, ma quale si adatta meglio i seguenti requisiti?

  • avere un elenco di voci -> 1 colonna e molte righe
  • riordino con il drag & drop
  • selezionare singole voci e usare i tasti per le azioni come cancellare
  • aprire una voce: la riga dovrebbe espandersi per mostrare più campi di input
  • look personalizzato: gli angoli arrotondati, ombre, gradiente di sfondo

Finora la mia ricerca dice che il TableView ha la maggior parte delle funzionalità, ma è più difficile da personalizzare nel suo aspetto, il CollectionView non ha drag & drop (giusto?), Ma è facile da progettare e il WebView vorrebbe molto sforzo per non ferire l'esperienza dell'utente e non riesco a legare il mio modello direttamente ai campi di input.

Quali pro ei contro che mi manca e che cosa mi consiglia di utilizzare?

È stato utile?

Soluzione

Un WebView non ha senso. Si potrebbe anche creare un'applicazione web se si utilizza un WebView. Un NSCollectionView è più per la griglia, come i dati, come programmi TV all'ora.

NSTableView è l'unico che ha un senso in questo caso. Ho implementato tutti i 5 punti elenco con un NSTableView senza alcun problema. È necessario estendere NSTableView e fare qualche disegno personalizzato per il look personalizzato. Questa è la parte più difficile.

Altri suggerimenti

  
      
  • aprire una voce: la riga dovrebbe espandersi per mostrare più campi di input
  •   

È necessario un vista struttura . Una vista tabella è per le liste piatte.

Si noti che NSOutlineView è una sottoclasse di NSTableView, quindi tutte le caratteristiche tavolo con vista lavorare su una visione contorno pure.

Ci sono persone che hanno fatto questo già. Uno che ho usato con successo è da Matteo Bertozzi ed è disponibile qui: http://th30z.netsons.org/2009/03/cocoa-sidebar-with-badges-take-2/ Si potrebbe prendere un po ' di massaggio per farlo funzionare correttamente (soprattutto se avete bisogno di un comportamento di drag-and-drop complessa), ma per funzionalità di base, come ad esempio ottenere i titoli di sezione e gli elementi nella lista, funziona in modo eccellente.

Edit: Questo ha salita fino a ed è una domanda comune sulla lista e-mail di cacao-dev. Qui ci sono alcune altre opzioni .

Basta preso uno sguardo al Things.app se stesso utilizzando "F-script da nessuna parte".

Hanno usato una sottoclasse di NSTableView chiamato "DetailTableView" che presenta gli elementi TODO abbreviato. articoli todo crollati sono realizzati tramite una cella personalizzato chiamato "ToDoCell", ma lo sguardo allargato che si ottiene durante la modifica è interessante. In tal caso, hanno avuto una visualizzazione personalizzata chiamata "ToDoEditView", che viene inserito come una visualizzazione secondaria della DetailTableView quando richiesto. Sospetto questa vista per modificare temporaneamente aggiunto come una visualizzazione secondaria nella posizione corretta e la riga corrispondente della Tableview viene ridimensionato temporaneamente mentre è presente.

Tutto abbastanza speculativo .. Mi piacerebbe sapere i dettagli di come questo è stato fatto. Si tratta di un impressionante interfaccia utente.

Sono avvicinando lo stesso problema nella mia app (con una lunga lista simile alla lista delle cose da fare cose) e penso che una visione tavolo farebbe un sacco di senso qui.

Il trucco sta avendo le cellule ( "file") espandere quando si fa doppio clic. Quello è circa tutti i progressi che ho fatto finora.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top