这个作用需要在下面的方法中进行判断 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; ============代码片段如下========== //textField只能输入@"0123456789.",且只能输入到小数点后两位,第一位不能是小数点 -(BOOL)isValidateCharacter:(NSString*)string andTextField:(UITextField*)textField { //用来标示字符串中是否存在小数点 BOOL exitPoint=NO; BOOL res=YES; //合法的字符集合 NSCharacterSet*tmpSet=[NSCharacterSet characterSetWithCharactersInString:@"0123456789."]; int i=0; while (i<string.length) { //首先判断是否有不合法的字符 NSString*subString=[string substringWithRange:NSMakeRange(i, 1)]; NSRange range=[subString rangeOfCharacterFromSet:tmpSet]; if (range.length==0) { res= NO; //说明subString是不合法的字符 break; } //第一个字符不能是小数点 if ((textField.text.length==0)&&([subString isEqualToString:@"."])) { res=NO; break; } //只能有一个小数点 if ([subString isEqualToString:@"."]) { exitPoint=YES; NSString*str=textField.text; NSRange strRange=[str rangeOfString:@"."]; if (strRange.length>0) { res=NO;//textfield已经存在小数点,而且即将输入的也是小数点 break; } } //小数点后两位 NSRange rangePoint=[textField.text rangeOfString:@"."]; if (rangePoint.length>0) { NSString*point=[[textField.text componentsSeparatedByString:@"."] lastObject]; if (point.length>=2) { res=NO; break; } } i++; } return res; } |
|
来自: 九辰夕 > 《UITextField输入框》