Как удалить последний символ Unicode из NSString

Я реализовал пользовательскую клавиатуру, связанную с текстовым полем, поэтому, когда пользователь нажимает кнопку удаления, я удаляю последний символ из строки и вручную обновляю текст текущего текстового поля.

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

Все идет нормально.

Теперь проблема в том, что у пользователя есть возможность ввести некоторые специальные символы Юникода, это не 1 байт, они также могут быть 2 байта, теперь при нажатии кнопки удаления, я должен удалить весь символ, но если я следуя вышеуказанному подходу, пользователь должен нажать кнопку удаления дважды.

Вот если я сделаю:

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

он работает нормально, но затем обычные символы, которые составляют всего 1 байт, удаляются дважды за раз.

Как справиться с такими сценариями?

Заранее спасибо.

РЕДАКТИРОВАТЬ:

Странно, что если я переключаюсь на клавиатуру iPhone, она обрабатывает оба случая соответственно. Должен быть какой-то способ сделать это, есть кое-что, чего мне не хватает, но я не могу понять, что именно.

Ответы на вопрос(3)

Ваш ответ на вопрос