Pregunta

Tengo un NSTextView subclase que estoy manipulando en un hilo separado (usando performSelectorOnMainThread: withObject: waitUntilDone :) utilizando selectores replaceCharactersInRange: withString :, setSelectedRange :, y insertText :. Estoy experimentando parpadeo de texto, y el bajo rendimiento como el NSTextView actualiza la pantalla para cada operación.

¿Alguna sugerencia sobre cómo controlar cuándo se actualiza la pantalla, por lo que puede actualizar sólo cuando realmente se necesita? He intentado utilizar varias combinaciones setNeedsDisplay:. No (tanto de los principales hilos y de fondo, antes y después de mis actualizaciones), que parece ser ignorado

Gracias de antemano a cualquier persona que pueda proporcionar alguna información.

¿Fue útil?

Solución

Creo que debería estar manipulando el subyacente NSTextStorage para la vista de texto, en lugar de invocar métodos de evento-relacionados de la vista directa. Este es un ejemplo bastante clásico de la arquitectura Modelo-Vista-Controlador: el NSTextView es la vista y la NSTextStorage es el modelo. Siempre que sea posible, se quiere manipular directamente el modelo y dejar que las capas controlador / Ver oferta con la actualización de la vista si lo consideran conveniente.

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