내 프로젝트 중 하나에서 상당히 복잡한 NSTextView 하위 클래스가 있습니다. 현재 인라인 찾기 바 (예 : Safari, Xcode)를 사용하여 찾기/바꾸기 작업을 수행하고 바꾸기 작업에 대해 실행 취소/다시 실행을 제대로 지원하려고합니다.NSTextView replaceCharactersInRange : withString : shouldChangeTextInRanges : replacementStrings :
모두 바꾸기 명령을 단일 명령으로 실행하려면 (텍스트보기에서 8 개의 대체 항목이있는 경우 한 번에 8 개의 대체 항목을 실행 취소해야합니다).
교환을 확인한 후 전화 할 수있는 shouldChangeTextInRanges:replaceStrings:
에 해당하는 것이 있는지 궁금합니다. 나는 replaceCharactersInRanges:withStrings:
또는 이와 유사한 것이있을 것으로 예상했으나있을 것 같지 않습니다.
제가 생각할 수있는 유일한 방법은 shouldChangeTextInRanges:replaceStrings:
에 대한 호출로 먼저 확인한 다음 replaceCharactersInRange:withString:
으로 전화를 걸어 텍스트보기의 전체 범위와 새 문자열 (대체 내용 포함)을 두 번째로 호출하는 것입니다 논의.
이것은 불필요한 것으로 보입니다. 그렇지 않으면 전체 문자열을 바꾸고 싶지 않습니다. 어떤 아이디어?
시도하지 않고 입력했기 때문에 삭제했습니다. 컴파일/실행을 시도 할 때 유용하지 못했습니다. 그것이 도움이 되었기 때문에 다행! 나는 후손을 위해 그것을 삭제했다. –
좋은 질문, BTW, 그리고 좋은 솔루션! –