Como remover o último símbolo unicode do NSString
Implementei um teclado personalizado associado a um campo de texto, portanto, quando o usuário pressiona o botão de exclusão, eu removo o último caractere da string e atualizo manualmente o texto do campo de texto atual.
NSRange range = NSMakeRange(currentTextFieldString.length-1, 1);
[currentTextFieldString replaceCharactersInRange:range withString:@""];
Por enquanto, tudo bem.
Agora, o problema é que o usuário tem a opção de inserir alguns símbolos unicode especiais, estes não são 1 byte, eles podem ser 2 bytes também, agora ao pressionar o botão delete, eu tenho que remover o símbolo inteiro, mas se eu siga a abordagem acima, o usuário tem que pressionar o botão delete duas vezes.
Aqui, se eu fizer:
NSRange range = NSMakeRange(currentTextFieldString.length-2, 2);
[currentTextFieldString replaceCharactersInRange:range withString:@""];
funciona bem, mas depois, os caracteres normais, que são apenas 1 byte, são apagados duas vezes de cada vez.
Como lidar com esses cenários?
Desde já, obrigado.
EDITAR:
É estranho que, se eu mudar para o teclado do iPhone, ele manipule os dois casos de forma adequada. Deve haver alguma maneira de fazer isso, há algo que estou perdendo, mas não sou capaz de descobrir o que.