小数键盘Xcode

时间:2013-04-14 21:13:12

标签: xcode4.6

我有一个文本框和一个计算按钮,我使用的是十进制键盘,当我在Xcode模拟器中运行我的程序时,我在左下角得到一个点但是当我在我的iPhone中运行程序时,我得到一个左下角有逗号。我知道模拟器是在美国Locale上设置的,而我在冰岛,如果使用逗号而不是点,我得不到相同的结果。我需要在文本框中使用点,而不是逗号。是否有任何我可以使用的代码告诉我的程序使用点而不是逗号,或者我是否需要为此创建一个自定义键盘。

2 个答案:

答案 0 :(得分:1)

不清楚你在追求什么。如果要更改键盘的外观,则必须编写自己的键盘。但是,如果通过在文本字段中添加一个点来响应逗号就足够了,您可以通过截取文本字段的委托中的逗号来轻松地做到这一点。实施textField:shouldChangeCharactersInRange:replacementString:。像这样的东西(没有经过测试,所以你可能需要调整一些):

-(BOOL)textField:(UITextField *)textField
        shouldChangeCharactersInRange:(NSRange)range
        replacementString:(NSString *)string {
    if (![string isEqualToString: @","])
        return YES;
    textField.text =
        [textField.text stringByReplacingCharactersInRange:range
                                                withString: @"."];
    return NO;
}

如果问题是逗号是可以的,但是在逗号是小数点的国家/地区,您希望将它用作小数点,只需在将字符串拉出文本字段时使用NSNumberFormatter把它变成一个数字。现在你通过说[_PipeID.text floatValue]来做到这一点。该电话没有关于该地区的情报。 NSNumberFormatter:

NSNumberFormatter* nf = [[NSNumberFormatter alloc] init];
nf.locale = [NSLocale currentLocale];
NSNumber* n = [nf numberFromString: tf.text];
// and *then* you can convert the NSNumber to a float with `floatValue`
NSLog(@"%f",n.floatValue);

顺便说一下,你说:

  

当我在Xcode模拟器中运行程序时......但是当我在iPhone中运行程序时

但你可以在模拟器上完美地测试这个;只需使用“设置”应用设置语言和区域格式。

答案 1 :(得分:1)

float s2 = [[dist.text stringByReplacingOccurrencesOfString:@"," withString:@"."] floatValue];

dist.text = [[NSString alloc] initWithFormat:@"%0.02f", s2];