絵文字を含む独自のキーボードを実装しようとしています。この目的のために、カーソル位置に絵文字を挿入しています。
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];