【发布时间】:2014-01-11 18:49:16
【问题描述】:
我正在尝试实现我自己的包含表情符号的键盘。 为此,我将表情符号插入光标位置。
如果 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];
【问题讨论】:
-
谢谢!这是一个小众问题,但它让我很恼火。
标签: iphone objective-c ios uitextfield emoji