Как удалить последний символ 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, она обрабатывает оба случая соответственно. Должен быть какой-то способ сделать это, есть кое-что, чего мне не хватает, но я не могу понять, что именно.