限制输入数字小于100000000 小数点后2位

来源:互联网 发布:c语言delay函数 编辑:程序博客网 时间:2024/05/18 01:52

最近项目有个需求, 对输入的数字大小及样式有一些限制,开始以为很麻烦,不过产品设计如此,只能努力去实现,下面把实现代码粘出来,供大家参考!

首先必须遵循UITextField的代理方法,然后去实现代理方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{    NSString *source        = [textField.text stringByReplacingCharactersInRange:range withString:string];        CGFloat money           = [source floatValue];        //判断数字大小不能大于100000000        if (money > 100000000) {            return NO;        }        //判断输入位数不能大于11位        if(source.length>11)        {            return NO;        }        //如果输入的是“.”  如果之前已经有"."或者字符串为空,则return NO        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;}

只需要简单实现这一个代理方法,就可以做到对输入数字的位数及格式的限制,是不是很简单呢? 希望可以帮到您!

阅读全文
0 0