美文网首页
UITextField限制输入两位小数

UITextField限制输入两位小数

作者: wwwwwwww1 | 来源:发表于2017-08-24 17:00 被阅读43次
  • (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    // 限制只能输入数字
    BOOL isHaveDian = YES;
    if ([string isEqualToString:@" "]) {
    return NO;
    }

    if ([textField.text rangeOfString:@"."].location == NSNotFound) {
    isHaveDian = NO;
    }
    if ([string length] > 0) {

      unichar single = [string characterAtIndex:0];//当前输入的字符
      if ((single >= '0' && single <= '9') || single == '.') {//数据格式正确
          
          if([textField.text length] == 0){
              if(single == '.') {
                  
                  [textField.text stringByReplacingCharactersInRange:range withString:@""];
                  return NO;
              }
          }
          
          //输入的字符是否是小数点
          if (single == '.') {
              if(!isHaveDian)//text中还没有小数点
              {
                  isHaveDian = YES;
                  return YES;
                  
              }else{
                  
                  [textField.text stringByReplacingCharactersInRange:range withString:@""];
                  return NO;
              }
          }else{
              if (isHaveDian) {//存在小数点
                  
                  //判断小数点的位数
                  NSRange ran = [textField.text rangeOfString:@"."];
                  if (range.location - ran.location <= 2) {
                      return YES;
                  }else{
                      
                      return NO;
                  }
              }else{
                  return YES;
              }
          }
      }else{//输入的数据格式不正确
          
          [textField.text stringByReplacingCharactersInRange:range withString:@""];
          return NO;
      }
    

    }
    else
    {
    return YES;
    }
    }

相关文章

网友评论

      本文标题:UITextField限制输入两位小数

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