Jak usunąć ostatni symbol Unicode z NSString

Zaimplementowałem niestandardową klawiaturę powiązaną z polem tekstowym, więc gdy użytkownik naciśnie przycisk usuwania, usuwam ostatni znak z łańcucha i ręcznie aktualizuję tekst bieżącego pola tekstowego.

NSRange range = NSMakeRange(currentTextFieldString.length-1, 1);
[currentTextFieldString replaceCharactersInRange:range withString:@""];

Jak na razie dobrze.

Problem polega na tym, że użytkownik ma możliwość wprowadzenia specjalnych symboli Unicode, nie są to 1 bajt, mogą mieć 2 bajty, teraz po naciśnięciu przycisku usuwania muszę usunąć cały symbol, ale jeśli ja postępuj zgodnie z powyższym podejściem, użytkownik musi dwukrotnie nacisnąć przycisk usuwania.

Tutaj, jeśli to zrobię:

NSRange range = NSMakeRange(currentTextFieldString.length-2, 2);
[currentTextFieldString replaceCharactersInRange:range withString:@""];

działa dobrze, ale normalne znaki, które są tylko 1 bajtem, są usuwane dwa razy na raz.

Jak radzić sobie z takimi scenariuszami?

Z góry dziękuję.

EDYTOWAĆ:

Dziwne jest to, że jeśli przełączę się na klawiaturę iPhone'a, to odpowiednio obsługuje oba przypadki. Musi być jakiś sposób, aby to zrobić, jest coś, czego mi brakuje, ale nie jestem w stanie zrozumieć, co.