iOS UITextField限制小數輸入位數
阿新 • • 發佈:2019-01-01
#pragma mark - UITextFieldDelegate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *toString = [textField.text stringByReplacingCharactersInRange:range withString:string];
if (toString.length > 0) {
// 保留規則: 小數點前9位,小數點後4位
NSString *stringRegex = @"(\\+)?(([0]|(0[.]\\d{0,4}))|([1-9]\\d{0,8}(([.]\\d{0,4})?)))?";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", stringRegex];
BOOL flag = [predicate evaluateWithObject:toString];
if (!flag) {
return NO;
}
}
return YES;
}