Emojileri içeren kendi klavyemi uygulamaya çalışıyorum. Bu amaçla, imleç konumuna emoji ekliyorum.uitextfield positionFromPosition: offset çalışmıyor emojis
Bu, UITextField'da 4 baytlık emoji karakterleri yoksa iyi çalışır. Aksi takdirde uygulama çöktü.
Ekleme kodunu buraya gönderiyorum. Birisi sorunun nasıl çözüleceğine işaret edebilir mi?
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];
bu hat metinde emoji'yi varsa nil döndürür: 1 karakter olarak 4 bayt karakterleri saymak Ben kendi uzunluğunun yazarak bu çözüldü sonunda
UITextPosition *newPos = [field positionFromPosition:field.beginningOfDocument offset:pos + 1];
teşekkür ederiz! Bu çok hoş bir problem ama benim dışımda canımı sıkıyordu. –