Quiero crear una aplicación Cocoa con una lista de entradas muy similar a la lista ToDo de Things.app (see the screencast). La pregunta es si debo utilizar¿Cómo implemento una lista personalizada en Cocoa?
- un TableView,
- un CollectionView o
- una vista Web.
Creo que podría funcionar con todas ellas, pero ¿cuál se adapta mejor a los siguientes requisitos?
- tienen una lista de entradas -> 1 columna & muchas filas
- reordenamiento con arrastrar & gota
- seleccionar entradas individuales & teclas de uso para acciones como eliminar
- abrir una entrada: la fila debe expandir para mostrar más campos de entrada
- apariencia personalizada: esquinas redondeadas, sombra, gradiente de fondo
Hasta ahora mi investigación dice que el TableView tiene la mayor parte de la funcionalidad, pero es más difícil de personalizar en su apariencia, CollectionView no tiene arrastre & drop (¿no?) Pero es fácil de diseñar y WebView tomaría mucho esfuerzo para no dañar la experiencia del usuario y no puedo vincular mi modelo directamente a los campos de entrada.
¿Qué pros y contras me falta y qué recomendarías?
Hm, ¿no se expande una fila en un NSOutlineView solo revela más "subrows"? Prefiero cambiar la altura de las filas y poner más cosas en él. ¿Esto tiene sentido? – Christian
Sí. En realidad, podría usar una vista de tabla e implementar el método de delegado 'tableView: heightForRow:' al que agregaron soporte en Tiger: http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTableView_Class/Reference/ Reference.html # // apple_ref/occ/instm/NSObject/tableView: heightOfRow: –
También necesitará una celda personalizada para alternar entre los diferentes estados de expansión. –