5

Tengo un NSCollectionView para el que tengo una dataArray y una selectedIndexesNSIndexSet define en su File's Owner. (Dado que estoy trabajando con MonoMac en ese proyecto, he tenido algunos problemas para trabajar con un simple NSArrayController, así que decidí implementar la fuente yo mismo.) Al inicializar mi controlador agrego algunos datos (NSMutableDictionary s) al dataArray . Cuando la aplicación muestra su ventana, todos los datos que acabo de agregar se muestran muy bien.de enlace de datos en un NSCollectionView

El problema es que los cambios en la fuente de datos no afectan a la interfaz de ninguna manera. ¿No debería la interfaz actualizarse automáticamente cuando agrego, cambio o elimino un elemento de la fuente de datos ya que vinculo los valores usando sus claves correspondientes?

¿Echo de menos algo? ¿Alguna idea sobre eso?

Muchas gracias
-f

+0

¿Alguna vez ha funcionado por completo? Soy nuevo en Monomac e intento hacer lo mismo que tú. – tempy

+0

yo también, ¿hay algún ejemplo de cómo hacer esto? – tofutim

Respuesta

2

Cuando se unen a una relación a muchos de ustedes fuente de datos que tienen que asegurarse de que la fuente de datos es de valor-clave Observando compatible para esta propiedad. No es suficiente tener una propiedad pública para una colección mutable, como NSMutableArray.

En la implementación de la fuente de datos, debe utilizar los métodos del protocolo NSKeyValueObserving para anunciar los cambios que realiza (usando willChange:valuesAtIndexes:forKey: para muchas relaciones).

Si el rendimiento es menos importante que una implementación simple, también puede usar un (inmutable) NSArray para la propiedad y siempre asignar una nueva matriz cuando los datos cambien. De esta forma, no obtendrás las agradables animaciones para objetos añadidos o eliminados.

+1

Gracias, Nikolai. Eso me apuntó en la dirección correcta para el tema relacionado con Mono. El atributo [Exportar] parece ser el truco. – flohei

Cuestiones relacionadas