美文网首页
iOS 数字键盘限制输入的位数以及小数点的位数

iOS 数字键盘限制输入的位数以及小数点的位数

作者: 姚姚先生 | 来源:发表于2017-09-13 17:22 被阅读81次
    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
    { 
     //string就是此时输入的那个字符textField就是此时正在输入的那个输入框返回YES就是可以改变输入框的值NO相反
        NSString * toBeString = [textField.text     stringByReplacingCharactersInRange:range withString:string]; 
        // 判断是否输入内容,或者用户点击的是键盘的删除按钮
        if (![string isEqualToString:@""]) {
            if ([textField isEqual:self.textField]) {
                // 小数点在字符串中的位置 第一个数字从0位置开始
                NSInteger dotLocation = [textField.text rangeOfString:@"."].location;
                if (dotLocation == NSNotFound && range.location != 0) {
                    //没有小数点,最大数值
                    if (range.location >= 9){
                        NSLog(@"单笔金额不能超过亿位");
                        if ([string isEqualToString:@"."] && range.location == 9) {
                            return YES;
                        }
                        return NO;
                    }
                }
                //判断输入多个小数点,禁止输入多个小数点
                if (dotLocation != NSNotFound){
                    if ([string isEqualToString:@"."])return NO;
                }
                //判断小数点后最多两位
                if (dotLocation != NSNotFound && range.location > dotLocation + 2) { return NO; }
                //判断总长度
                if (textField.text.length > 11) {
                    return NO;
                }
            }
        }
        return YES;
    }
    

    相关文章

      网友评论

          本文标题: iOS 数字键盘限制输入的位数以及小数点的位数

          本文链接:https://www.haomeiwen.com/subject/gvrlsxtx.html