我正在尝试实现我自己的包含表情符号的键盘。为此,我将表情符号插入光标位置。
如果 UITextField 中不存在 4 字节的表情符号字符,则此方法可以正常工作。否则应用程序会崩溃。
我在这里发布插入代码。有人可以指出如何解决这个问题吗?
UITextField *field = self.textField;
UITextRange *range = field.selectedTextRange;
int pos = [field offsetFromPosition:field.beginningOfDocument toPosition:range.end];
NSString * firstHalfString = [field.text substringToIndex:pos];
NSString * secondHalfString = [field.text substringFromIndex:pos];
field.text = [NSString stringWithFormat: @"%@%@%@", firstHalfString, emoticon, secondHalfString];
UITextPosition *newPos = [field positionFromPosition:field.beginningOfDocument offset:pos + 1];
field.selectedTextRange = [field textRangeFromPosition:newPos toPosition:newPos];
如果文本中有表情符号,则此行返回 nil:
UITextPosition *newPos = [field positionFromPosition:field.beginningOfDocument offset:pos + 1];