33

我刚刚问了一个关于如何监控对 a 的更改的问题,UITextField并收到了以下回复:

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

这可行,但替换字符串不是整个字符串,只是它正在添加的内容。我怎样才能得到整个字符串?我的目标是查看文本字段中的字符串是否为空白或等于某个数字(在不同情况下)。

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

4

3 回答 3

82
NSString * proposedNewString = [[textField text] stringByReplacingCharactersInRange:range withString:replacementString];
于 2012-07-23T01:02:19.437 回答
14

斯威夫特版本

Swift中,我们需要将textField's文本转换为NSString. 以下内容可能有用:

let newString = (textField.text! as NSString).replacingCharacters(in: range, with: string)
于 2016-02-25T02:10:02.483 回答
1
-(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;
}
于 2013-04-01T13:00:06.060 回答