Estoy tratando de implementar mi propio teclado que contiene emojis. Para este propósito estoy insertando los emoji en la posición del cursor.uitextfield positionFromPosition: offset no funciona emojis
Esto funciona bien si no existen 4 caracteres emoji de 4 bytes en UITextField. De lo contrario, la aplicación se cuelga.
Estoy publicando aquí el código de inserción. ¿Alguien puede señalar cómo resolver el problema?
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];
esta línea devuelve nil si hay emojis en el texto:
UITextPosition *newPos = [field positionFromPosition:field.beginningOfDocument offset:pos + 1];
Gracias! Este es un problema de nicho, pero me molestaba muchísimo. –