Question

J'ai NSTextView avec une quantité importante de texte. Chaque fois que je défiler cependant, la vue est pas mis à jour correctement. Il y a des objets qui restent en haut ou en bas de la vue. Il semble que la vue ne se rafraîchit pas assez souvent. Si je fais défiler très lentement la vue à jour correctement si. Si j'ajoute une bordure à la vue tout fonctionne parfaitement, vue sans frontières est celui qui a un problème. Voici un lien vers une capture d'écran:

Merci

Était-ce utile?

La solution

Avez-vous défini le et setDrawsBackground propertes soit pour copiesOnScroll le ou NSScrollView NSClipView?

La première chose que je suggère est en train de la propriété « tire de fond » du setDrawsBackground::

[myScrollView setDrawsBackground:NO];

Notez que cela devrait être mis sur la NO, et pas sur le embarqué setCopiesOnScroll:.

L'extrait suivant de la documentation peut être pertinente:

  

Si votre <=> renferme un <=> l'envoi d'un message avec un <=> paramètre de la <=> a pour effet <=> supplémentaire d'envoyer le <=> a message avec un <=> paramètre <=>. L'effet secondaire d'envoyer le message directement à <=> le serait plutôt <=> l'apparition des « sentiers » (vestiges du dessin précédent) dans la vue du document tel qu'il est défilée.

Autres conseils

On dirait que le champ de texte est même pas dans le défilement de la zone ... Êtes-vous sûr que quelque chose isnt il chevauchement?

J'ai eu des problèmes similaires - artefacts se développent lorsque le NSTextView est intégré dans un autre scrollview

(par exemple un NSTableView.).

En fait, je tournais sur la setdrawsbackground, puis ajouté une belle couleur pour le faire disparaître à nouveau.

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

en combinaison avec un événement ScrollWheel m'a laissé utiliser le NSTextView dans un NSTableView.

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

J'ai eu le même problème il y a quelque temps. Je ne me souviens pas comment je l'ai résolu.

Essayez de placer le NSTextView à une autre vue si le superview est une vue personnalisée. Juste pour voir ce qui se passera.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top