做个判断就可以了
@interface ViewController ()
{
UITextField * _numberFielde;
}
#define NUMBERS @"0123456789"
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_numberFielde = [[UITextField alloc] initWithFrame:CGRectMake(0, 100,self.view.frame.size.width, 50)];
_numberFielde.layer.borderColor = [UIColor grayColor].CGColor;
_numberFielde.layer.borderWidth = 1.0f;
_numberFielde.delegate = self;
[_numberFielde becomeFirstResponder];
_numberFielde.placeholder = @"请输入数字";
[self.view addSubview:_numberFielde];
// Do any additional setup after loading the view, typically from a nib.
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet*cs;
cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet];
NSString*filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
BOOL basicTest = [string isEqualToString:filtered];
if(basicTest)
{
if (textField == _numberFielde)
{
// 四位加一个空格
if ([string isEqualToString:@""]){ // 删除字符
if ((textField.text.length - 2) % 5 == 0) {
textField.text = [textField.text substringToIndex:textField.text.length - 1];
}
return YES;
} else {
if (textField.text.length % 5 == 0) {
textField.text = [NSString stringWithFormat:@"%@ ", textField.text];
}
}
return YES;
}
}
else
{
return NO;
}
return YES;
}