Objective c NSNumberFormatter无法允许数字以0开头
因此,我尝试在用户输入生日时自动在两位数之间添加斜杠,但由于某些原因,当生日以0开头时,数字格式化程序会将其删除,并将生日弄糟。下面是我的代码,有人能帮我弄清楚怎么做吗?提前谢谢Objective c NSNumberFormatter无法允许数字以0开头,objective-c,nsstring,nsnumberformatter,Objective C,Nsstring,Nsnumberformatter,因此,我尝试在用户输入生日时自动在两位数之间添加斜杠,但由于某些原因,当生日以0开头时,数字格式化程序会将其删除,并将生日弄糟。下面是我的代码,有人能帮我弄清楚怎么做吗?提前谢谢 NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init] ; [formatter setGroupingSeparator:@"/"]; [formatter setGroupingSize:2]; [formatter setUsesGroup
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init] ;
[formatter setGroupingSeparator:@"/"];
[formatter setGroupingSize:2];
[formatter setUsesGroupingSeparator:YES];
[formatter setSecondaryGroupingSize:2];
NSString *num = textField.text ;
if(![num isEqualToString:@""])
{
num= [num stringByReplacingOccurrencesOfString:@"/" withString:@""];
NSString *str = [formatter stringFromNumber:[NSNumber numberWithDouble:[num doubleValue]]];
textField.text=str;
}
类似这样的事情可能会有所帮助:
NSMutableString *string = @"YOUR TEXTFIELD TEXT";
NSString *lastString = [string substringWithRange:NSMakeRange(string.length-2, 1)];
if ([lastString isEqualToString:@"/"]) {
return;
}
if (string.length == 2 || string.length == 5) {
[string appendString:@"/"];
}
您可以执行以下操作:
- 检查字符串的长度
- 如果长度mod 2==0,则添加“/”
- 记录你的字符串
- (void)controlTextDidChange:(NSNotification *)obj{
NSString *num = [textField stringValue] ;
if (num.length%2==0)
{
NSString *someText = [NSString stringWithFormat: @"%@/ ", num];
num = someText;
}
textField.stringValue = num;
}
我没有尝试过,但您应该尝试数字格式化程序方法