有时候,我们会遇到输入内容长度的限制,比如身份证号输入18,超过18位不让输入。复制粘贴也不可以,如果超过了18位就截取到前18位。
1.添加委托
UITextFieldDelegate
2.添加输入框内容变化响应函数
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
//敲删除键
if ([string length]==0) {
return YES;
}
//当输入框当前的字符个数大于18的时候,就不让更改了(不能等于18,因为如果等于18,在输入框字符个数等于18的情况下就不能进行粘贴替换内容了)
if ([textField.text length]>18)
return NO;
//获得当前输入框内的字符串
NSMutableString *fieldText=[NSMutableString stringWithString:textField.text];
//完成输入动作,包括输入字符,粘贴替换字符
[fieldText replaceCharactersInRange:range withString:string];
NSString *finalText=[fieldText copy];
//如果字符个数大于18就要进行截取前边18个字符
if ([finalText length]>18) {
textField.text=[finalText substringToIndex:18];
return NO;
}
return YES;
}