첨부 속성이 내 nstextView에 언제 추가되는지 어떻게 알 수 있습니까?

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

  •  06-07-2019
  •  | 
  •  

문제

응용 프로그램의 특정 NSTEXTView 첨부 파일의 의미론으로 인해 텍스트 저장소에서 언제 삽입되거나 삭제되는지 알고 싶습니다.

NSTEXTVIEW의 서브 클래스는 첨부 파일을 교체 할 때 쉽게 볼 수있는 whangetextInRange : ReplacementString : Method를 구현합니다 (지정된 범위에서 텍스트 저장소를 검색 할 수 있음).

교체 문자열은 단지 nsstring이고 nsattriptedstring이 아니기 때문에 첨부 파일이 삽입 되는지이 방법에서 볼 방법이 없습니다. 문서는 "속성 만"편집 된 경우 문자열이 나일 수 있다고 말할 때까지도 진행됩니다.

문제는 첨부 파일이 삽입 될 때 가장 좋은 재정의 지점은 무엇입니까? 또는 아마도 유용한 것 : 속성이 언제 수정되었는지 알 수있는 최상의 재정의 지점은 무엇입니까?

업데이트 : 위에서 첨부 파일이 삽입되는지 알 수있는 방법이 없다고 말했습니다. 문자열에는 마법의 nsattachmentcharacter가 포함되기 때문에 "부착물이 관련되어 있다고 말할 수 있습니다. 그러나 편집이 완료 될 때까지 첨부 파일에 대한 구체적인 정보가 없습니다.

도움이 되었습니까?

해결책

NSTEXTSTORAGE DELEGATE MOTHOD -TEEXTSTORADEDIDPROCESSITITITITING :, 이는 기본 텍스트 저장소를 변경할 때마다 호출해야합니다. 그런 다음 -EDITEDRANGE, -EDITEDMASK 및 -CHANGEINLENGHT 메소드를 사용하여 텍스트 스토리지의 어떤 섹션이 변경되었는지 확인하고 해당 범위에서 관심을 가질 수있는 첨부 파일을 찾을 수 있습니다.

다른 팁

두 가지를보고 싶을 수도 있습니다 NSTextStorage 대표 방법 :

- (void)textStorageWillProcessEditing:(NSNotification *)notification;
/* Delegate can change the characters or attributes */

- (void)textStorageDidProcessEditing:(NSNotification *)notification;
/* Delegate can change the attributes */

내부에 textStorageWill/DidProcessEditing, 전화해도됩니다 -[NSTextStorage editedMask] 그리고 -[NSTextStorage editedRange] 무엇이 바뀌 었는지 확인한 다음 그에 따라 조치를 취하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top