前言:
有很多做支付的时候,要求是输入控制在小数点后两位,如上图效果,我们只需要把对应的UITextField遵守代理,然后在代理方法中做下处理,具体代码入下:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSMutableString *futureString = [NSMutableString stringWithString:textField.text];
[futureString insertString:string atIndex:range.location];
NSInteger flag = 0;
// 这个可以自定义,保留到小数点后两位,后几位都可以
const NSInteger limited = 2;
for (NSInteger i = futureString.length - 1; i >= 0; i--) {
if ([futureString characterAtIndex:i] == '.') {
// 如果大于了限制的就提示
if (flag > limited) {
[SVProgressHUD showErrorWithStatus:@"输入金额请控制在小数点后两位" duration:2.0];
return NO;
}
break;
}
flag++;
}
return YES;
}
网友评论