Pregunta

Tengo una NSTableView que muestra (a través de enlaces de) datos de un NSTreeController. La aplicación con frecuencia anexa / datos cambios a / de la matriz ligada.

El problema es que si el usuario ha seleccionado una fila en la tabla, pero se ha desplazado de manera que los datos seleccionados ya no es visible, cuando la aplicación actualiza la matriz que hace que la pantalla de desplazamiento automático para que la línea seleccionada es una vez más en la pantalla. Esto es bastante frustrante para los usuarios, sobre todo porque los nuevos datos pueden llegar en cualquier momento.

¿Hay alguna manera de desactivar esta función?

¿Fue útil?

Solución

Es posible que tenga una subclase NSTableView y anular -scrollRowToVisible:, horquillado temporalmente la llamada a super. Esto también puede requerir una Ivar BOOL personalizado en su subclase para realizar un seguimiento de si desea desplazarse.

Me gustaría empezar por establecer un punto de interrupción allí para ver en qué momento se activa el desplazamiento automático. Esto debería ayudar a encontrar los momentos adecuados para alternar el Ivar.

Otros consejos

¿Está utilizando un NSTreeController con un NSOutlineView o un NSArrayController con un NSTableView? El uso de un NSTreeController con un NSTableView no tiene mucho sentido para mí?

Si estás usando una NSTableView probablemente debería estar usando un NSArrayController para gestionar sus datos y de esta reordenación de las filas es una característica de la NSArrayController. Intente apagar el Auto reorganizar el contenido opción en el controlador dentro del IB.

Cuando es activado, el controlador del conjunto de reordenará sus objetos en adición, eliminación y cambios a los objetos que puedan afectar el orden de clasificación (si existe) y causar ningún vistas de tabla o esquema vistas para recargar sus datos.

No sé de una característica similar para NSTreeController principalmente porque no lo uso, ya que nunca ha funcionado bien para mí. Yo, por desgracia, recomiendo que sólo tiene que utilizar los métodos del origen de datos para el NSOutlineView y suministrar sus datos a la antigua usanza. En mi experiencia, NSTreeController sólo es adecuado para las tareas más triviales.

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