我刚刚问a question如何监控对UITextField
的更改并收到此回复:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)replacementStr {
// Enable "Next" if you like what's entered in the replacementStr
}
这样可行,但替换字符串不是整个字符串,只是添加的字符串。我怎样才能获得整个字符串?我的目标是查看文本字段中的字符串是空白还是等于某个数字(在不同的场景中)。
请注意,在这种情况下,文本字段的出口不起作用,因为在字段中的文本更改之前调用此方法。
答案 0 :(得分:77)
NSString * proposedNewString = [[textField text] stringByReplacingCharactersInRange:range withString:replacementString];
答案 1 :(得分:13)
Swift版本
在 Swift 我们需要将textField's
文字投放到NSString
。以下内容非常有用:
let newString = (textField.text! as NSString).replacingCharacters(in: range, with: string)
答案 2 :(得分:0)
-(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;
}