ios textfield如何设置,只能输入1.0-9.9内的数字,并实现时时监测效果

//byzqk
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { /* * 不能输入.1-9以外的字符。 * 设置输入框输入的内容格式 * 只能有一个小数点 * 小数点后最多能输入一位 * 如果第一位是.则前面加上1. */ // 判断是否有小数点 if ([textField.text containsString:@"."]) { self.isHaveDian = YES; }else{ self.isHaveDian = NO; } if (string.length > 0) { //当前输入的字符 unichar single = [string characterAtIndex:0]; // 不能输入.0-9以外的字符 if (!((single >= '0' && single <= '9') || single == '.')) { // [SDIndicator showInfoWithMessage:@"您的输入折扣不正确"]; return NO; } // 只能有一个小数点 if (self.isHaveDian && single == '.') { // [SDIndicator showInfoWithMessage:@"最多一个小数点"]; return NO; } // 如果第一位是.则前面加上1. if ((textField.text.length == 0) && (single == '.')) { textField.text = @"1"; } // 如果第一位是.则前面加上1. if ((textField.text.length == 0) && (single == '0')) { // [SDIndicator showInfoWithMessage:@"折扣必须大于1"]; return NO; } // 小数点后最多能输入1位 if (self.isHaveDian) { NSRange ran = [textField.text rangeOfString:@"."]; if (range.location > ran.location) { if ([textField.text pathExtension].length > 0) { // [SDIndicator showInfoWithMessage:@"小数点后最多有一位小数"]; return NO; } } }else{ if (single != '.'&&textField.text.length > 0) { return NO; } } } return YES; }
posted @ 2018-08-30 09:38  WidgetBox  阅读(775)  评论(0编辑  收藏  举报