iOS UITextField限制输入内容

在UITextField做一些输入内容的时候,难免会限制内容的长度,并使多余的字符串不写入内容字断中,这时就需要实现UITextField的代理方法,

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    NSLog(@"11==%@,%@,%@",textField.text,string,NSStringFromRange(range));

#define STRING_MAX 10 // 限制的个数
    if ((textField.text.length - range.length + string.length) > STRING_MAX)
    {
        NSString *substring = [string substringToIndex:STRING_MAX - (textField.text.length - range.length)];
        NSMutableString *lastString = [textField.text mutableCopy];
        [lastString replaceCharactersInRange:range withString:substring];
        textField.text = [lastString copy];
        return NO; // 返回NO表示不允许将新的字符串(string)追加到当前textField的text中,用来限制多余字符串的输入
    }

    return YES; // 返回YES表示允许将新的字符串(string)追加到当前textField的text中
}

你可能感兴趣的:(ios,NSString,UITextField,限制字符串输入)