知道textField中的完整更改字符串:shouldChangeCharactersInRange:replacementString:

时间:2012-07-23 00:59:14

标签: objective-c cocoa-touch uitextfield

我刚刚问a question如何监控对UITextField的更改并收到此回复:

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

这样可行,但替换字符串不是整个字符串,只是添加的字符串。我怎样才能获得整个字符串?我的目标是查看文本字段中的字符串是空白还是等于某个数字(在不同的场景中)。

请注意,在这种情况下,文本字段的出口不起作用,因为在字段中的文本更改之前调用此方法。

3 个答案:

答案 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;
}