controllare gli aggiornamenti NSTextView trattare con sfarfallio e migliorare la velocità

StackOverflow https://stackoverflow.com/questions/2618434

  •  26-09-2019
  •  | 
  •  

Domanda

Ho un NSTextView sottoclasse che sto manipolando in un thread separato (usando performSelectorOnMainThread: withObject: waitUntilDone :) utilizzando i selettori replaceCharactersInRange: withString :, setSelectedRange :, e insertText :. Sto sperimentando sfarfallio del testo e scarso rendimento, come aggiorna il NSTextView il display per ciascuno e per ogni operazione.

Qualche suggerimento su come controllare se il display viene aggiornato, in modo da poter aggiornare solo quando effettivamente necessario? Ho provato ad utilizzare varie combinazioni setNeedsDisplay:. NO (da entrambe le principali e thread in background, prima e dopo i miei aggiornamenti), che sembra essere ignorato

Grazie in anticipo a tutti coloro che possono fornire qualche informazione.

È stato utile?

Soluzione

Credo che si dovrebbe manipolare il sottostante NSTextStorage per la visualizzazione del testo, anziché invocare direttamente i metodi evento-correlati della vista. Questo è un esempio abbastanza classico di un'architettura Model-View-Controller: il NSTextView è la vista e la NSTextStorage è il modello. Quando possibile, si vuole manipolare il modello direttamente e lasciare che gli strati di controllo / Vedi l'offerta con l'aggiornamento della vista come meglio credono.

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