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

来源:互联网 发布:局域网共享文件软件 编辑:程序博客网 时间:2024/05/17 08:10

@interface ViewController ()<UITextFieldDelegate>

{

    UITextField *_textField;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [superviewDidLoad];

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

    

    _textField = [[UITextFieldalloc]init];

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

    _textField.borderStyle =UITextBorderStyleRoundedRect;

    _textField.delegate =self;

    [self.viewaddSubview:_textField];

    

}

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

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

{

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

    if (_textField==textField) {

        

        return [selfvalidateNumber:string];

        

    }

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

    returnYES;

}


- (BOOL)validateNumber:(NSString*)number

{

    BOOL res =YES;

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

    int i =0;

    while (i < number.length) {

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

        NSRange range = [stringrangeOfCharacterFromSet:tmpSet];

        if (range.length ==0) {

            res =NO;

            break;

        }

        i++;

    }

    return res;

}