Зная полную измененную строку в textField: shouldChangeCharactersInRange: replacementString:

Я просто задал вопрос о том, как отслеживать изменения в UITextField и получил этот ответ:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)replacementStr {
    // Enable "Next" if you like what entered in the replacementStr
}

Это работает, но строка замены - это не целая строка, а только то, что она добавляет. Как я могу получить целую строку? Моя цель состоит в том, чтобы увидеть, что строка в текстовом поле пуста или равна определенному числу (в разных сценариях).

Обратите внимание, что выход в текстовое поле не работает в этом случае, потому что этот метод вызывается до изменения текста в поле.

Ответ 1

NSString * proposedNewString = [[textField text] stringByReplacingCharactersInRange:range withString:replacementString];

Ответ 2

Быстрая версия

В Swift Нам нужно textField's текст textField's в NSString. Может быть полезно следующее:

let newString = (textField.text! as NSString).replacingCharacters(in: range, with: string)

Ответ 3

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString * searchStr = [textField.text stringByReplacingCharactersInRange:range withString:string];

//    [textField2 setText:[textField1.text stringByReplacingCharactersInRange:range withString:string]];
    NSLog(@"%@",searchStr);
    return YES;
}