0

问题是在俄语本地化数字键盘上有“,”而不是“。” 当视图被加载时,我在文本字段中有“0.0”,当我认为用户只能输入“。”时 我使用这样的代码来防止输入多个“。”

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];

    NSArray  *arrayOfString = [newString componentsSeparatedByString:@"."];

    if ([arrayOfString count] > 2 )
    {
        return NO;
    }
}

但是当发生在 rus 本地化垫中时出现“,”而不是“。” 如果有“。”,我不知道如何防止输入“,”。已经

我将输入的“,”替换为“。” 所以如果有人帮助限制输入“,如果有”,我会很高兴。已经在文本字段中

4

1 回答 1

1

您可以使用 NSNumberFormatter 在字段中显示本地化数字。

NSNumberFormatter * formatter =  [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:kCFNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:1];
[formatter setLocale:[NSLocale currentLocale]];
NSString * myString = [formatter stringFromNumber:[NSNumber numberWithFloat:123.456]];

来自https://stackoverflow.com/a/11504127/719866

您可以在检查中使用格式化程序来查看用户输入的值对于该-numberFromString:方法是否适用于该语言环境。

于 2013-07-24T18:21:21.513 回答