【发布时间】:2016-11-09 08:48:40
【问题描述】:
我想创建千位分隔符。当我在文本字段中输入数字时它可以工作。但是,当我从文本字段中删除一个数字时,我不工作。
我输入时的屏幕截图:
我从文本字段中删除数字时的屏幕截图:
但我想有这样的号码: 121.132 ,你能帮我解决这个问题吗?
代码:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init] ;
[formatter setGroupingSeparator:@"."];
[formatter setGroupingSize:2];
[formatter setUsesGroupingSeparator:YES];
[formatter setSecondaryGroupingSize:3];
NSString *num = textField.text ;
if(![num isEqualToString:@""]){
num= [num stringByReplacingOccurrencesOfString:@"." withString:@""];
NSString *str = [formatter stringFromNumber:[NSNumber numberWithDouble:[num doubleValue]]];
textField.text=str;
}
【问题讨论】:
-
这段代码放在哪里?你为什么要删除你自己的时期?
-
它在 shouldChangeCharactersInRange 里面,用户想修改它以写出正确的文本,这就是为什么,它应该在用户删除文本时起作用
-
你说的是
-textField:shouldChangeCharactersInRange:replacementString:?您的代码是否在删除时执行? -
是的,它会删除,但会将点放在错误的位置
-
?请在设置之前登录
textField.text和str。
标签: ios objective-c xcode nsnumber nsnumberformatter