Desidero creare un'app Cocoa con un elenco di voci molto simili all'elenco ToDo di Things.app (see the screencast). La questione è se dovrei usareCome implementare un elenco personalizzato in Cocoa?
- un TableView,
- un CollectionView o
- una WebView.
Penso che potrebbe funzionare con tutti, ma quale si adatta meglio ai seguenti requisiti?
- hanno un elenco di voci -> 1 colonna & molte righe
- riordino con il drag & goccia
- selezionare le voci singole & usare i tasti per le azioni come cancellare
- aprire una voce: la riga dovrebbe espandi per visualizzare più campi di input
- aspetto personalizzato: angoli arrotondati, ombreggiatura, sfumatura di sfondo
Finora la mia ricerca dice che TableView ha la maggior parte delle funzionalità, ma è più difficile da personalizzare nel suo aspetto, il CollectionView non ha il trascinamento & di rilascio (giusto?) Ma è facile da progettare e WebView richiederebbe molto sforzo per non danneggiare l'esperienza dell'utente e non posso associare direttamente il mio modello ai campi di input.
Quali sono i pro e i contro mi mancano e cosa consiglieresti di utilizzare?
Hm, non espandere una riga in un NSOutlineView basta rivelare più "subrow"? Preferirei piuttosto cambiare l'altezza delle file e inserirvi più cose. Ha senso ciò? – Christian
Sì. Potresti effettivamente utilizzare una vista tabella e implementare il metodo 'tableView: heightForRow:' delegate che hanno aggiunto il supporto per Tiger: http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTableView_Class/Reference/ Reference.html # // apple_ref/occ/instm/NSObject/tableView: heightOfRow: –
Avrai anche bisogno di una cella personalizzata che puoi commutare tra i diversi stati di espansione. –