iOS如何限制textField的输入格式

来源:互联网 发布:qq机器人软件下载 编辑:程序博客网 时间:2024/06/04 21:16

当你在写一个应用,里面有显示限制某些金额的时候(例如金额:9999.99这样的),可以通过以下代码来实现

代码块

#pragma mark - 键盘监听方法- (void)UIControlEventEditingChanged:(UITextField *)textField {    //限制不能输入两个小数点    NSArray *arr = [textField.text componentsSeparatedByString:@".”];    if (arr.count > 2)    {        textField.text = _previousTextFieldContent;        textField.selectedTextRange = _previousSelection;        return;    }    NSString *amount = textField.text;    NSInteger digit;    //判断是否包含小数点    if([amount rangeOfString:@"."].location != NSNotFound) {        NSArray *arr = [amount componentsSeparatedByString:@"."];        NSString *intNum = arr[0];        NSString *floatNum = arr[1];        //金额的整数位数        digit = intNum.length;        //小数的位数        NSInteger floatDigit = floatNum.length;        if (digit > 7) {            textField.text = _previousTextFieldContent;            textField.selectedTextRange = _previousSelection;            return;        }        if (floatDigit > 2) {            textField.text = _previousTextFieldContent;            textField.selectedTextRange = _previousSelection;            return;        }    }    else {        //不包含小数点        digit = amount.length;        if (digit > 7) {            textField.text = _previousTextFieldContent;            textField.selectedTextRange = _previousSelection;            return;        }    }    return;}#pragma mark - textFieldDelegate- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {    _previousTextFieldContent = textField.text;    _previousSelection = textField.selectedTextRange;    return YES; }
1 0
原创粉丝点击