Pregunta

Estoy tratando de decidir qué camino tomar para el desarrollo de mi aplicación Snow Leopard. En primer lugar, debería Prefacio con las diferencias obvias:

NSTableView puede tener múltiples columnas de datos para la representación de diferentes partes de la misma "elemento" de los datos (una fila) donde NSCollectionView puede mostrar una cuadrícula de datos, así, pero cada fila + combo columna es su propio elemento. Para mis propósitos, supongo que estoy tratando con una sola columna.

  1. Por lo que yo puedo decir, artículos NSCollectionView son NSViews que todos deben ser de las mismas dimensiones. Además, a diferencia NSTableView, artículos CollectionView se copian en el NSCollectionView en lugar de ser proporcionado según sea necesario por un dataSource (estoy seguro acerca de esto, por favor, corríjanme si me equivoco).

  2. NSTableView utiliza NSCells si decide personalizar la visualización de filas. Como NSCell no es una NSResponder, ¿cómo se acontecimientos mango (si quería añadir algún tipo de accesorio a la célula, por ejemplo, cómo las flechas en el trabajo de iTunes (aunque, iTunes es carbono). He visto algunas subclases en NSCell IB que parecen ser equivalentes de sus hermanos NSControl, pero lo que si quiero tener objetos MySweetView en un NSCell?).

  3. Ambos parecen funcionar sobre la misma con respectos a consolidaciones, correcto?

  4. Por último, NSCollectionView parece jugar muy bien con la animación de sus elementos (para artículos re-organización, o filtrarlas por ejemplo). NSTableView puede hacer esto con sus filas?

Algo más que deba tener en cuenta?

¿Fue útil?

Solución

  1. La diferencia aquí es que en una vista de tabla, cada fila es un artículo, y las columnas muestran diferentes aspectos (propiedades) de dicho elemento. En una vista de colección, cada intersección de fila-columna es un elemento.
  2. No he hecho esto, pero trate de implementar tableView:didClickTableColumn: en su vista de tabla delegado. Ese método es nuevo en 10.6. Usted tendría que obtener [NSApp currentEvent], y probablemente pasarlo a un método en la celda de la columna.
  3. Con una vista de tabla, se unen a la columna; que no se unen a la vista (no para proporcionar contenido, de todos modos, lo hace obligar a la vista de las cosas como índices de selección). Con una vista de colección, no hay columnas (ver # 1), por lo que siempre ates de la vista.
  4. No.

Otros consejos

Fwiw, NSTableView es una parte muy antigua de la AppKit, y que es un poco enrevesada.

Si eres nuevo en la plataforma, le recomiendo conseguir su cabeza alrededor de NSCollectionView primero.

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