2009-05-11 20 views
6

Saludos,NSTextView no se actualiza correctamente en el desplazamiento

Tengo un NSTextView con una cantidad considerable de texto. Sin embargo, cada vez que me desplazo, la vista no se actualiza correctamente. Hay algunos artefactos que permanecen en la parte superior o inferior de la vista. Parece que la vista no se actualiza con la frecuencia suficiente. Si me desplazo muy lentamente, la vista se actualiza correctamente. Si agrego un borde a la vista, todo funciona perfectamente, la vista sin bordes es la que tiene un problema. Aquí hay un enlace a una captura de pantalla:

http://img216.imageshack.us/img216/8193/picture13s.png

Gracias

+0

¿Alguien puede explicar por qué se ha cambiado esta pregunta? Me parece una pregunta razonable. –

+0

dw He votado al alza en el contador: P +1 –

Respuesta

6

¿Ha establecido las propiedades setDrawsBackground y copiesOnScroll para NSScrollView o NSClipView?

La primera cosa que sugeriría es apagar la "llama de fondo" propiedad del NSScrollView:

[myScrollView setDrawsBackground:NO]; 

Tenga en cuenta que este debe fijarse en el NSScrollView, y no en el NSClipView incrustado.

El siguiente extracto de la documentation puede ser relevante:

Si su NSScrollView encierra un NSClipView el envío de un mensaje setDrawsBackground: con un parámetro de NO a la NSScrollView tiene el efecto añadido de enviar el mensaje NSClipViewsetCopiesOnScroll: con un parámetro de NO. El efecto secundario de enviar el mensaje setDrawsBackground: directamente al NSClipView en su lugar sería la aparición de "rastros" (vestigios del dibujo anterior) en la vista del documento a medida que se desplaza.

+1

¿Por qué el voto a favor? –

+4

Me acabo de topar con este problema exacto. El ajuste '[scrollView setDrawsBackground: YES]' solucionó el problema del artefacto. En otras noticias, es una sensación muy extraña encontrar tu propia respuesta cuando buscas una solución :) –

2

Parece que el campo de texto ni siquiera está en el área de desplazamiento ... ¿Estás seguro de que algo isnt la superposición de ella?

+0

No estoy seguro, no. Sin embargo, si me desplazo hacia abajo, aparecerá el texto, alineado con la parte inferior del control de desplazamiento. La basura desaparecerá y se reemplazará por una representación clara del texto. – EightyEight

+0

¿Intentó volver a configurar su xib? A veces eso me ayuda. –

0

Tuve el mismo problema hace algún tiempo. No recuerdo cómo lo resolví.

Intenta colocar NSTextView en otra vista si la supervista es una vista personalizada. Solo para ver que pasará

+0

Voy a intentarlo. Es bueno saber que no soy el único con este problema. – EightyEight

1

Tuve un problema similar: los artefactos se desarrollan cuando el NSTextView está incrustado en otra vista de desplazamiento (es decir, un NSTableView).

De hecho di en setdrawsbackground, y luego agregué un bonito color para que desapareciera nuevamente.

-(void)awakeFromNib{ 
    NSScrollView *scroll = [self enclosingScrollView]; 
    [scroll setBorderType:NSNoBorder]; 
    [scroll setDrawsBackground:YES]; 
    [scroll setBackgroundColor:[NSColor windowBackgroundColor]]; 
} 

Esto, en combinación con un evento scrollwheel me deja utilizar las NSTextView en un NSTableView.

-(void)scrollWheel:(NSEvent *)theEvent{ 
    NSScrollView *scroll = [self enclosingScrollView]; 
    [[scroll superview] scrollWheel:theEvent]; 
} 
Cuestiones relacionadas