iOS 文本框输入数字,每四位自动加空格 怎么做

2026-05-19 10:02:11
推荐回答(1个)
回答1:

做个判断就可以了

@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;

}