2013-10-10 1 views
3

와 다음 문자 오류로 이동 UiTextView : 내가 이모티콘이있을 때내가 캐럿 후 다음 문자로 이동하는 기능을 가지고 UiTextView에서 이모티콘

textView.selectedRange = NSMakeRange(textView.selectedRange.location+1,0); 

이 작동하지 않습니다, 나는 그것을 가지고 두 번 .

캐럿 위치에서 1 대신 2를 움직일 수 있도록 캐럿 이후의 다음 문자가 특수 문자인지 확인해 볼 수 있는지 궁금합니다.

그리고 나는 그것이 무엇이든 또는 오류

NSRange myRange = NSMakeRange(textView.selectedRange.location,1); 
[textView.text substringWithRange:myRange] 

어떤 도움을주지 않는 범위의있는 NSString을 얻을 때?

답변

2

NSString rangeOfComposedCharacterSequenceAtIndex: 메서드를 사용하십시오. 대부분의 문자의 경우 길이가 1 인 범위를 반환하지만 유니 코드 값이 U + 10000 이상인 문자의 경우 길이가 2 인 범위를 제공합니다.

이렇게하면 캐럿이 다음 문자 :

NSRange nextRange = [textView.text rangeOfComposedCharacterSequenceAtIndex:textView.selectedRange.location]; 
textView.selectedRange = NSMakeRange(nextRange.location + nextRange.length, 0); 
+0

이봐, 내 대답은 거의 끝났다 :-) - 나는 단지 첫 번째 줄의 '+ 1'이 잘못되었다고 생각한다. –

+0

흠. 그래 너가 옳아. 업데이트 됨. 감사. – rmaddy

관련 문제