selectSelector replaceCharactersInRange : withString :, setSelectedRange :, insertText :를 사용하여 별도의 스레드 (performSelectorOnMainThread : withObject : waitUntilDone 사용)에서 조작하는 서브 클래스 NSTextView가 있습니다. 나는 텍스트의 깜박임 현상을 경험하고 있으며, NSTextView가 각각의 모든 작업에 대한 디스플레이를 업데이트하므로 성능이 좋지 않습니다.깜박임을 처리하고 속도를 향상시키기 위해 NSTextView 업데이트를 제어합니다.
디스플레이가 업데이트되는 시점을 제어하는 방법에 대한 제안 사항이 있으므로 실제로 필요할 때만 업데이트 할 수 있습니까? 나는 다양한 조합을 사용하여 시도했다. setNeedsDisplay : NO (메인과 백그라운드 스레드 모두에서, 내 업데이트 전과 후에) 무시되는 것처럼 보인다.
일부 통찰력을 제공 할 수있는 사람에게 미리 감사드립니다.
예. 코코아 텍스트 시스템은 고도로 최적화되어 있으므로 사용법에 따라 사용하면 좋은 성능을 얻을 수 있습니다. 이 경우,보기를 수정하기보다는'NSAttributedString'의 서브 클래스 인 근본적인'NSTextStorage' 객체를 수정하십시오. 이것은 쇠망 입히기 접근법입니다. –
감사! 텍스트를 수정하는 방식의 최적화에 추가하여 NSTextStorage 객체를 사용하는 조합이 트릭을 만들었습니다. – stdout