UITextField 控制文本输入小数点和小数点后几位

来源:互联网 发布:电脑温度监控软件 编辑:程序博客网 时间:2024/06/04 18:14
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{    if ([_textField.text rangeOfString:@"."].location==NSNotFound) {        isHaveDian=NO;    }    if ([string length]>0)    {        unichar single=[string characterAtIndex:0];//当前输入的字符        if ((single >='0' && single<='9') || single=='.')//数据格式正确        {            //首字母不能为0和小数点            if([_textField.text length]==0){                if(single == '.'){//                    [self alertView:@"亲,第一个数字不能为小数点"];//                    NSLog(@"亲,第一个数字不能为小数点");//                    [CNHUD showHUD:@"亲,第一个数字不能为小数点" duration:1.5];                    [_textField.text stringByReplacingCharactersInRange:range withString:@""];                    return NO;                }//                if (single == '0') {////                    [self alertView:@"亲,第一个数字不能为0"];////                    NSLog(@"亲,第一个数字不能为0");//                    [CNHUD showHUD:@"亲,第一个数字不能为0" duration:1.5];//                    [_textField.text stringByReplacingCharactersInRange:range withString:@""];//                    return YES;//                    //                }            }            if (single=='.')            {                if(!isHaveDian)//text中还没有小数点                {                    isHaveDian=YES;                    return YES;                }else                {//                    [self alertView:@"亲,您已经输入过小数点了"];//                    NSLog(@"亲,您已经输入过小数点了");//                    [CNHUD showHUD:@"亲,您已经输入过小数点了" duration:1.5];                    [_textField.text stringByReplacingCharactersInRange:range withString:@""];                    return NO;                }            }            else            {                if (isHaveDian)//存在小数点                {                    //判断小数点的位数                    NSRange ran=[_textField.text rangeOfString:@"."];                    int tt=range.location-ran.location;                    if (tt <= 2){                        return YES;                    }else{//                        [self alertView:@"亲,您最多输入两位小数"];//                        [CNHUD showHUD:@"亲,您最多输入两位小数" duration:1.5];//                        NSLog(@"亲,您最多输入两位小数");                        return NO;                    }                }                else                {                    return YES;                }            }        }else{//输入的数据格式不正确//            [self alertView:@"亲,您输入的格式不正确"];//            NSLog(@"亲,您输入的格式不正确");//            [CNHUD showHUD:@"亲,您输入的格式不正确" duration:1.5];            [_textField.text stringByReplacingCharactersInRange:range withString:@""];            return NO;        }    }    else    {        return YES;      }  }
0 0
原创粉丝点击