Pregunta

Quiero construir una aplicación de cacao con una lista de entradas muy similares a la lista de tareas pendientes de Things.app ( ver el screencast ). La pregunta es si debo utilizar

  1. a TableView,
  2. a CollectionView o
  3. una vista Web.

Creo que podría trabajar con todos ellos, pero cuál se adapta mejor a los siguientes requisitos?

  • tener una lista de entradas -> 1 columna y muchas filas
  • reordenamiento de arrastrar y colocar
  • seleccionar entradas individuales y utilice las teclas para acciones como eliminar
  • abrir una entrada: la fila debe expandirse para mostrar más campos de entrada
  • aspecto personalizado: esquinas redondeadas, sombra, gradiente de fondo

Hasta ahora mi investigación dice que el TableView tiene la mayoría de la funcionalidad, pero es más difícil de personalizar en su apariencia, la CollectionView no tiene drag & drop (¿verdad?), Pero es fácil de diseñar y de la vista Web tomaría mucho esfuerzo para no herir la experiencia del usuario y no se puede unir directamente a mi modelo de campos de entrada.

¿Qué pros y contras que me estoy perdiendo y lo que me recomiendan usar?

¿Fue útil?

Solución

Una vista Web no tiene sentido. Es lo mismo que crear una aplicación web si utiliza una vista Web. Un NSCollectionView es más para la red como datos, como listas de TV por hora.

NSTableView es el único que tiene sentido en este caso. He implementado los 5 puntos de la bala con con un NSTableView sin problema. Es necesario extender NSTableView y hacer algo de dibujo personalizado para el aspecto personalizado. Esa es la parte más difícil.

Otros consejos

  
      
  • abrir una entrada: la fila debe expandirse para mostrar más campos de entrada
  •   

Es necesario un vista de esquema . A la vista de tabla es para las listas planas.

Tenga en cuenta que NSOutlineView es una subclase de NSTableView, por lo que todas las tabla-view funciones en un vista de esquema también.

Hay gente que ha hecho esto ya. Uno que he utilizado con éxito es por Matteo Bertozzi y está disponible aquí: http://th30z.netsons.org/2009/03/cocoa-sidebar-with-badges-take-2/ puede ser que tome un bits de dar masajes a conseguir que funcione correctamente (especialmente si usted necesita el comportamiento de arrastrar y soltar complejo), pero para la funcionalidad básica, tales como conseguir los títulos de las secciones y los elementos de la lista, que funciona de manera excelente.

Edit: Esto tiene subido hasta y es una pregunta común en la lista de correo electrónico de cacao-dev. Aquí están algunas otras opciones .

Sólo tomó un vistazo a sí mismo usando Things.app "F-escritura en cualquier lugar".

Han utilizado una subclase de NSTableView llama "DetailTableView", que presenta los elementos de tareas condensados. elementos de tareas colapsadas se implementan utilizando una celda personalizado llamado "Todocell", pero la mirada expandida se obtiene cuando la edición es interesante. En ese caso, ellos tienen una vista personalizada llamada "ToDoEditView" que se inserta como una vista secundaria de la DetailTableView cuando sea necesario. Sospecho que este punto de vista de edición se añade temporalmente como subvista en la ubicación correcta y la fila correspondiente de la tableview se cambia de tamaño temporalmente mientras se encuentra presente.

Todo bastante especulativa .. Me gustaría conocer los detalles de cómo se hizo esto. Es una interfaz de usuario impresionante.

Me estoy acercando el mismo problema en mi aplicación (con una gran lista similar a la lista de tareas cosas) y creo una vista de tabla tendría mucho sentido aquí.

El truco está teniendo sus células ( "filas") ampliar cuando se hace clic doble. Eso es todo el progreso que he hecho hasta ahora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top