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.

questionAnswers(3)

yourAnswerToTheQuestion