- (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 == '.') {
// 首字母不能为小数点
if ([textField.text length] == 0) {
if(single == '.') {
[SVProgressHUD showInfoWithStatus:@"亲,第一个数字不能为小数点!"];
[textField.text stringByReplacingCharactersInRange:range withString:@""];
return NO;
}
}
// 输入的字符是否是小数点
if (single == '.') {
// text中还没有小数点
if(!isHaveDian) {
isHaveDian = YES;
return YES;
} else {
[SVProgressHUD showInfoWithStatus:@"亲,您已经输入过小数点了!"];
[textField.text stringByReplacingCharactersInRange:range withString:@""];
return NO;
}
} else {
// 存在小数点
if (isHaveDian) {
// 判断小数点的位数
NSRange ran = [textField.text rangeOfString:@"."];
if (range.location - ran.location <= 2) {
return YES;
} else {
[SVProgressHUD showInfoWithStatus:@"亲,您最多输入两位小数!"];
return NO;
}
} else {
return YES;
}
}
} else {
// 输入的数据格式不正确
[SVProgressHUD showInfoWithStatus:@"亲,您输入的格式不正确!"];
[textField.text stringByReplacingCharactersInRange:range withString:@""];
return NO;
}
}
else {
return YES;
}
}
UITextField只能输入一个小数点,限制小数点两位
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- @property(nonatomic,assign)BOOLisHaveDian; @property(nona...
- @property(nonatomic,assign)BOOLisHaveDian; @property(nona...
- 1.textfield的键盘类型:只能输入数字和小数点textField.keyboardType = UIKey...
- 首先我们需要给需要限制的UITextField设置代理,然后在其代理方法中实现如下的代码: 代码: functex...