У меня есть UITextField в моем приложении, где я разрешаю пользователю вводить и удалять текст. Я реализую метод UITextFieldDelegate:Попытка удалить символ в строке в UITextField с использованием backspace
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{ }
Внутри этого метода, я кое-что (не имеющие отношения к этому вопросу), а затем вызвать другой метод:
-(NSString*) formatString:(NSString*) stringName stringRange:(NSRange)range deleteLastChar:(BOOL)deleteLastChar {
...
NSString *newString = [stringName mutableCopy];
if(deleteLastChar) {
//this line below is only deleting spaces within the text, but not deleting any characters. I am unable to position the cursor in front of any character within the line itself, but only at the end of the line. I am only able to delete characters from the end of the end of the line, but not from within the line.
[newString delecteCharactersInRange:NSMakeRange(range.location, 1)];
}
return newString;
}
В этом методе, я пытаюсь для удаления символа курсор находится рядом с использованием клавиши backspace на клавиатуре (стандартная функциональность). «stringName» в этом случае - вся строка, введенная в textField. Вместо этого я всегда удаляю последний символ всей строки. Я понимаю, что мне нужно использовать объект NSRange, но я не уверен, как в этом случае. Есть идеи?
Заранее спасибо всем, кто ответил
'NSMakeRange (stringName.length - 1, stringName.length); – brandonscript