美文网首页
UITextField输入金额

UITextField输入金额

作者: iaiayao | 来源:发表于2018-02-23 14:59 被阅读14次

    限制小数输入

    在输入金额的UITextField中,要给予三个规则的判断 

    1. 只能输入数字(可以通过设置键盘类型为Decimal Pad)

    2. 小数点只能有一个

    3. 小数点后最多有两位数字 (可以通过正则表达式或者长度判断)

        2. 和3. 的代码 (首先引入UITextFieldDelegate,指定代理为自己)

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

        if (textField == self.tfWithdrawalAmount) {        

        //如果输入的是“.”  判断之前已经有"."或者字符串为空        

            if ([string isEqualToString:@"."] && ([textField.text rangeOfString:@"."].location != NSNotFound || [textField.text isEqualToString:@""])) {

                return NO;        

            }       

            //拼出输入完成的str,判断str的长度大于等于“.”的位置+4,则返回false,此次插入string失败 ("379132.424",长度10,"."的位置6, 10>=6+4)        

            NSMutableString *str = [[NSMutableString alloc] initWithString:textField.text];        

            [str insertString:string atIndex:range.location];       

            if (str.length >= [str rangeOfString:@"."].location+4){            

            return NO;       

              }   

        }   

        return YES;

    }

    相关文章

      网友评论

          本文标题:UITextField输入金额

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