Pregunta

En mi configuración Tengo una NSCollectionView de volúmenes conectados al Mac. Para Vista del NSCollectionViewItem Tengo una NSBox con un NSTableView dentro de una lista de los contenidos de ese volumen.

Mi problema viene cuando se trata de añadir / Borrar De los artículos a la NSTableView. El NSBox parece ser inicializado una vez, por lo que sólo hay una NSTableView. Esto significa que cuando quiero actualizar los datos dentro del NSTableView no puede llamar reloadData en una IBOutlet y tienen que actualizar todas las tablas.

Si creo una IBOutlet en una subclase de la NSBox, es nula para la instancia, por lo que no se puede llamar a través de eso.

Lo más cerca que he llegado es encerrando un @catch @try todo el código que devuelve el objeto en una fila en una columna, se produce una excepción, ya que el artículo ya no existe, por lo que puedo agarrar el tableView y llame reloadData, que parece que actualizar específica NSTableView.

El problema con esto es que si el artículo es retirado al final de la tabla, o si se añade un elemento, la excepción no se producen, ya que puede ver todos los artículos existentes.

Alguien ha tenido alguna experiencia con un NSTableView en vista de un NSCollectionViewItem? ¿Cómo actualizar las tablas?

¿Fue útil?

Solución

Ponga la NSBox (con su NSTableView) en su propia semilla. Cada vez que se crea un nuevo elemento de vista de colección, cargue la punta, conjunto que NSBox como ver la vista del elemento de la colección, y suelte el NSBox.

En cuanto a la alimentación de las vistas de tabla, la forma más fácil es probablemente Enlaces. Enlazar cada columna de la vista de tabla a una propiedad diferente del objeto modelo que el elemento de vista de colección representa. Es probable que desee que pasar por un controlador de array, por supuesto, lo que significa tener uno de esos por artículo vista de colección, y añadiendo a un array, que usted suelta en dealloc.

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