ios UItextField 控制输入内容只输入数字

@interface ViewController ()<UITextFieldDelegate>

{

    UITextField *_textField;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    _textField = [[UITextField alloc]init];

    _textField.frame = CGRectMake(20, 100, 100, 30);

    _textField.borderStyle = UITextBorderStyleRoundedRect;

    _textField.delegate = self;

    [self.view addSubview:_textField];

    

}

//设置文本框只能输入数字

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

{

    //如果是限制只能输入数字的文本框

    if (_textField==textField) {

        

        return [self validateNumber:string];

        

    }

    //否则返回yes,不限制其他textfield

    return YES;

}


- (BOOL)validateNumber:(NSString*)number

{

    BOOL res =YES;

    NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];

    int i =0;

    while (i < number.length) {

        NSString * string = [number substringWithRange:NSMakeRange(i,1)];

        NSRange range = [string rangeOfCharacterFromSet:tmpSet];

        if (range.length ==0) {

            res =NO;

            break;

        }

        i++;

    }

    return res;

}


猜你喜欢

转载自blog.csdn.net/qq_29680975/article/details/78615328