Tôi đang cố gắng triển khai bàn phím của riêng mình chứa biểu tượng cảm xúc. Vì mục đích này, tôi đang chèn biểu tượng cảm xúc vào vị trí con trỏ.vị trí uitextfieldTừ vị trí: bù đắp không làm việc biểu tượng cảm xúc
Điều này hoạt động tốt nếu không có ký tự biểu tượng cảm xúc 4 byte tồn tại trong UITextField. Nếu không, ứng dụng sẽ bị lỗi.
Tôi đang đăng mã chèn tại đây. Ai đó có thể chỉ ra cách giải quyết vấn đề này?
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];
dòng này trả về nil nếu có biểu tượng cảm xúc trong văn bản:
UITextPosition *newPos = [field positionFromPosition:field.beginningOfDocument offset:pos + 1];
Cảm ơn bạn! Đây là một vấn đề thích hợp, nhưng nó làm tôi khó chịu. –