2009-05-11 9 views
6

Grüße,NSTextView nicht ordnungsgemäß beim Scrollen

Ich habe eine NSTextView mit einer beträchtlichen Menge an Text. Immer wenn ich jedoch blättern muss, wird die Ansicht nicht richtig aktualisiert. Es gibt einige Artefakte, die oben oder unten in der Ansicht verbleiben. Es scheint, dass die Ansicht sich nicht oft genug auffrischt. Wenn ich sehr langsam scrolle, wird die Ansicht jedoch korrekt aktualisiert. Wenn ich der Ansicht einen Rahmen hinzufüge, funktioniert alles einwandfrei, die grenzenlose Ansicht ist diejenige, die ein Problem hat. Hier ist ein Link zu einem Screenshot:

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

Dank

+0

Kann jemand erklären, warum diese Frage abgelehnt wurde? Es scheint mir eine vernünftige Frage zu sein. –

+0

dw ich upvoted zu counter: P +1 –

Antwort

6

Haben Sie die setDrawsBackground und copiesOnScroll Eigenschaften für entweder die NSScrollView oder die NSClipView eingestellt?

Das erste, was ich vorschlagen würde, dreht sich die „zieht Hintergrund“ Eigentum des NSScrollView aus:

[myScrollView setDrawsBackground:NO]; 

Beachten Sie, dass dies auf der NSScrollView eingestellt werden sollte, und nicht auf dem eingebetteten NSClipView.

Der folgende Auszug aus dem documentation können relevant sein:

Wenn Ihr NSScrollView einen NSClipView umschließt mit einem Parameter von NO zum NSScrollView eine setDrawsBackground: Nachricht gesendet hat den zusätzlichen Effekt des Sendens der NSClipView eine setCopiesOnScroll: Nachricht mit ein Parameter von NO. Der Nebeneffekt des Sendens der setDrawsBackground: Nachricht direkt an die NSClipView stattdessen wäre das Auftreten von "Spuren" (Spuren der vorherigen Zeichnung) in der Dokumentansicht, während es gescrollt wird.

+1

Warum der Downvote? –

+4

Ich bin gerade über dieses genaue Problem selbst gestolpert. Die Einstellung '[scrollView setDrawsBackground: YES]' 'behob das Artefaktproblem. In anderen Nachrichten ist es ein sehr seltsames Gefühl, deine eigene Antwort zu finden, wenn du nach einer Lösung suchst :) –

2

wie das Textfeld aussieht, ist nicht einmal in der Scroll-Bereich ... Sind Sie sicher, dass etwas nicht wahr überlappende?

+0

Ich bin mir nicht sicher, nein. Wenn ich jedoch nach unten scrolle, wird der Text angezeigt, der mit dem unteren Rand des Bildlaufsteuerelements ausgerichtet ist. Der Müll verschwindet, ersetzt durch eine klare Darstellung des Textes. – EightyEight

+0

haben Sie versucht, Ihr Xib neu einzurichten? Manchmal hilft mir das. –

0

Ich hatte vor einiger Zeit die gleichen Probleme. Ich kann mich nicht erinnern, wie ich es gelöst habe.

Versuchen Sie, die NSTextView in eine andere Ansicht zu platzieren, wenn die Superview eine benutzerdefinierte Ansicht ist. Nur um zu sehen, was passieren wird.

+0

Ich werde es versuchen. Gut zu wissen, dass ich nicht der Einzige bin, der dieses Problem hat. – EightyEight

1

Ich hatte ein ähnliches Problem - Artefakte entstehen, wenn die NSTextView in eine andere Scrollview (dh ein NSTableView) eingebettet ist.

Ich drehte tatsächlich auf die Setdrawsbackground, und fügte dann eine schöne Farbe, damit es wieder verschwinden.

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

Dies in Kombination mit einem Scroll-Rad-Ereignis lassen Sie mich die NSTextView in einem NSTableView verwenden.

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