【发布时间】:2013-05-22 05:22:18
【问题描述】:
我想在用户输入值时格式化文本字段文本。它工作得很好,但我的问题是,如果用户在小数点后按 1 然后按 2。我的替换字符串是“12”。当时numbar是12。我不能带小数点..
NSNumber* number = [numberFormatter numberFromString:string];
这是我的完整代码,
#pragma mark textfieldDelgate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLocale *locale=[[NSLocale alloc]initWithLocaleIdentifier:@"en_GB"];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:locale];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSString *text = [textField text];
NSString *replacementText = [text stringByReplacingCharactersInRange:range withString:string];
NSMutableString *newReplacement = [[ NSMutableString alloc ] initWithString:replacementText];
NSString *currencyGroupingSeparator = numberFormatter.currencyGroupingSeparator;
[newReplacement replaceOccurrencesOfString:currencyGroupingSeparator withString:@"" options:NSBackwardsSearch range:NSMakeRange(0, [newReplacement length])];
NSNumber * number = [numberFormatter numberFromString:newReplacement];
if (number == nil && [replacementText length]!=0) {
return NO;
}
NSLog(@"%@",newReplacement);
text = [numberFormatter stringFromNumber:number];
[textField setText:text];
return NO;
}
我还附上了截图。 如何用十进制值格式化字符串...... 提前致谢
【问题讨论】:
-
你可以限制用户进入。在您的文本字段中
标签: iphone ios objective-c