emojis가 포함 된 자체 키보드를 구현하려고합니다. 이 목적으로 이모티콘을 커서 위치에 삽입하고 있습니다.uitextfield positionFromPosition : 오프셋이 작동하지 않습니다. emojis
4 바이트 이모티콘 문자가 UITextField에 없으면 제대로 작동합니다. 그렇지 않으면 앱이 다운됩니다.
여기에 삽입 코드를 게시하고 있습니다. 누군가 문제를 해결하는 방법을 지적 할 수 있습니까?
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을 반환 : 1 개 문자로 4 바이트 문자를 계산 난 내 자신의 길이를 작성하여이 문제를 해결 끝에
UITextPosition *newPos = [field positionFromPosition:field.beginningOfDocument offset:pos + 1];
감사합니다! 이것은 그런 틈새 문제이지만, 그것은 나에게 지옥을 괴롭 히고 있었다. –