Próbuję zaimplementować własną klawiaturę zawierającą emotikony. W tym celu wstawiam emoji w pozycji kursora.uitextfield positionFromPosition: offset nie działa emoja
Działa to dobrze, jeśli w UITextField nie ma 4-bajtowych znaków emoji. W przeciwnym razie aplikacja ulega awarii.
Zamieszczam tutaj kod wstawiania. Czy ktoś może wskazać, jak rozwiązać problem?
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];
linia ta zwraca nil jeśli istnieją emotikony w tekście:
UITextPosition *newPos = [field positionFromPosition:field.beginningOfDocument offset:pos + 1];
Dziękujemy! To jest taki niszowy problem, ale to mnie denerwowało. –