4

在 UiTextView 中,我有一个函数可以跳转到插入符号后的下一个字符:

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

当我有表情符号时它不起作用,我必须两次。

我想知道是否可以检查插入符号后的下一个字符是否是特殊字符,所以我在插入符号位置移动 2 而不是 1。

当我尝试获取该范围的 NSString 时,它没有给出任何内容或错误

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

有什么帮助吗?

4

1 回答 1

2

使用NSString rangeOfComposedCharacterSequenceAtIndex:方法。对于大多数字符,这将返回一个长度为 1 的范围。但对于 Unicode 值为 U+10000 或更大的字符,这将给出一个长度为 2 的范围。

这会将插入符号移动到下一个字符:

NSRange nextRange = [textView.text rangeOfComposedCharacterSequenceAtIndex:textView.selectedRange.location];
textView.selectedRange = NSMakeRange(nextRange.location + nextRange.length, 0);
于 2013-10-10T21:17:46.947 回答