2014-11-28 6 views
1

iOS 용 텍스트 파서를 사용하려고합니다. 굵게, 기울임 꼴, 하이라이트 등의 문법을 가지고 있습니다. UITextViewNSTextStorage의 인스턴스를 설정하여 변경 사항을 모니터링하고 올바른 속성을 설정했습니다. 텍스트를 UITextView에 미리로드하면 멋지게 작동합니다. 내가 입력하고의 말을 할 수있을 때NSTextStorage에서 속성을 재설정하는 방법

그러나 나는 큰 그것이 노란색과 모든 괜찮 강조 그것은 작동이

==a== 

같은 것을 입력합니다. 그러나 나는 바로 옆에 마지막 ==에 커서를 놓고 입력을 시작하면이 같은 것을 만들 경우 :

==a==hello my name is... 

그런 다음 텍스트의 나머지 부분도 강조 도착합니다.

나는 그 텍스트로 정확히 UITextView을 채우면 제대로 해석하기 때문에 내가 사용하는 정규식을 알지 못한다.

질문 : 그래서 도움이 필요한 것은 현재 커서 위치를 텍스트 속성으로 재설정하는 것입니다. 텍스트보기의 끝 부분에있는 경우 앞으로 진행할 수 없기 때문에 NSRangeException을 얻으므로이를 수행하는 방법을 잘 모르겠습니다.

감사합니다.

답변

1

나는 이것을 알아 냈습니다. delegateUITextView이고 방법을 구현하고 typingAttributes을 설정하십시오. 이처럼

:

- (void)textViewDidChange:(UITextView *)textView { 
    textview.typingAttributes = @{...}; 
} 

이제 텍스트를 업데이트 할 때마다 기본 속성으로 재설정됩니다.