Controlando as atualizações do NSTEXTVIEW para lidar com o Flicker e melhorar a velocidade

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

  •  26-09-2019
  •  | 
  •  

Pergunta

Eu tenho um NSTEXTVIEL subclassem que estou manipulando em um thread separado (usando o performeSelectoronMainthread: withObject: waituntildOne :) usando seletores replacecharactersinRange: withString:, setSelectedRange:, e insertText:. Estou passando por pista de texto e um desempenho ruim à medida que o NSTEXTVIEW atualiza a tela para cada operação.

Alguma sugestão sobre como controlar quando a exibição é atualizada, para que eu possa atualizá -la apenas quando realmente necessária? Tentei usar várias combinações SetNeedsDisplay: não (dos threads principais e de segundo plano, antes e depois das minhas atualizações), que parecem ser ignoradas.

Agradecemos antecipadamente a qualquer pessoa que possa fornecer algumas dicas.

Foi útil?

Solução

Eu acho que você deveria estar manipulando o subjacente NSTextStorage Para a visualização de texto, em vez de invocar os métodos relacionados a eventos da exibição diretamente. Este é um exemplo bastante clássico de uma arquitetura modelo-visualizador: o NSTextView é a vista e o NSTextStorage é o modelo. Sempre que possível, você deseja manipular o modelo diretamente e permitir que o controlador/camadas de visualização lide com a atualização da visualização como achar adequada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top