当前位置: 代码迷 >> 综合 >> UITextField 只能输入数字、一个小数点、只能有两位小数
  详细解决方案

UITextField 只能输入数字、一个小数点、只能有两位小数

热度:40   发布时间:2023-12-09 12:11:27.0

UITextField 只能输入数字、一个小数点、只能有两位小数


//textField.text 输入之前的值 string 输入的字符
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{BOOL isHaveDian;if ([textField1.text rangeOfString:@"."].location==NSNotFound) {isHaveDian=NO;}if ([string length]>0){unichar single=[string characterAtIndex:0];//当前输入的字符if ((single >='0' && single<='9') || single=='.')//数据格式正确{//首字母不能为0和小数点if([textField1.text length]==0){if(single == '.'){//[self alertView:@"亲,第一个数字不能为小数点"];[textField1.text stringByReplacingCharactersInRange:range withString:@""];return NO;}if (single == '0') {//[self alertView:@"亲,第一个数字不能为0"];[textField1.text stringByReplacingCharactersInRange:range withString:@""];return NO;}}if (single=='.'){if(!isHaveDian)//text中还没有小数点{isHaveDian=YES;return YES;}else{//[self alertView:@"亲,您已经输入过小数点了"];[textField1.text stringByReplacingCharactersInRange:range withString:@""];return NO;}}else{if (isHaveDian)//存在小数点{//判断小数点的位数NSRange ran=[textField1.text rangeOfString:@"."];int tt=range.location-ran.location;if (tt <= 2){return YES;}else{//[self alertView:@"亲,您最多输入两位小数"];return NO;}}else{return YES;}}}else{//输入的数据格式不正确[self alertView:@"亲,您输入的格式不正确"];[textField1.text stringByReplacingCharactersInRange:range withString:@""];return NO;}}else{return YES;}
}