1、首先设置 UITextField 的代理
textField.delegate = self;
2、实现 代理方法
#pragma mark - 当UITextField 有内容输入的时候 执行此方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
/**
* 限制 输入长度
*/
NSInteger length = textField.text.length;
// 这里如果 不判断 string.length > 0 结果是无法删除已输入的字符
if (length >= 3 && string.length >0)
{
return NO;
}
/**
* 限制输入内容 规定只能输入数字
*/
NSCharacterSet *CS;
NSString *stringSet = [NSString stringWithFormat:@"1234567890"];
CS = [[NSCharacterSet characterSetWithCharactersInString:stringSet] invertedSet];
NSString *filtered =
[[string componentsSeparatedByCharactersInSet:CS] componentsJoinedByString:@""];
BOOL basic = [string isEqualToString:filtered];
return basic;
}