Domanda

Ho un NSTextView con una quantità considerevole di testo. Ogni volta che ho scorrere tuttavia, la vista non viene aggiornato correttamente. Ci sono alcuni manufatti che rimangono nella parte superiore o nella parte inferiore della vista. Sembra che la vista non si aggiorna per sé abbastanza spesso. Se ho scorrere molto lentamente la vista aggiorna correttamente però. Se posso aggiungere un bordo alla vista tutto funziona perfettamente, vista senza confini è quella che ha un problema. Ecco un link per uno screenshot:

Grazie

È stato utile?

Soluzione

Hai impostato il setDrawsBackground e copiesOnScroll propertes sia per la NSScrollView o NSClipView?

La prima cosa che vorrei suggerire è svolta al largo della "disegna sfondo" di proprietà del setDrawsBackground::

[myScrollView setDrawsBackground:NO];

Si noti che questo deve essere impostato sulla NO, e non sulla incorporato setCopiesOnScroll:.

Il seguente estratto dal documentazione può essere rilevante:

  

Se il <=> racchiude un <=> l'invio di un messaggio <=> con un parametro di <=> al <=> ha l'effetto aggiunto di invio del <=> un <=> messaggio con un parametro di <=>. L'effetto collaterale di invio del messaggio <=> direttamente al <=> invece sarebbe la comparsa di “sentieri” (vestigia del disegno precedente) nella visualizzazione del documento in quanto viene fatta scorrere.

Altri suggerimenti

Sembra che il campo di testo non è nemmeno nella scrolling-zona ... Sei sicuro che qualcosa isnt sovrapponendola?

Ho avuto un problema simile - artefatti si sviluppano quando la NSTextView è incorporato in un altro ScrollView

(vale a dire un NSTableView.).

In realtà ho girato su il setdrawsbackground, e poi ha aggiunto un bel colore per farla sparire di nuovo.

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

Questo, in combinazione con un evento scrollwheel mi ha lasciato usare il NSTextView in un NSTableView.

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

Ho avuto lo stesso problema qualche tempo fa. Non mi ricordo come ho risolto.

Prova a mettere il NSTextView ad un'altra vista se il superview è una visualizzazione personalizzata. Solo per vedere cosa accadrà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top