1

テキスト ボックスと計算ボタンがあり、10 進数キーパッドを使用しています。Xcode シミュレーターでプログラムを実行すると、左下隅にドットが表示されますが、iPhone でプログラムを実行すると、左下隅。シミュレーターが US Locale に設定されていることは知っていますが、私はアイスランドにいます。ドットの代わりにコンマを使用すると、同じ結果が得られません。テキスト ボックスではコンマではなくドットを使用する必要があります。コンマの代わりにドットを使用するようにプログラムに指示するために使用できるコードはありますか、それともカスタムキーボードを作成する必要がありますか?

4

2 に答える 2

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;
}

コンマが問題ないという問題があるが、コンマが小数点である国では小数点として使用したい場合は、テキスト フィールドから文字列を取り出して、それを数。今、あなたは と言ってこれをやっています[_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でプログラムを実行すると

しかし、シミュレーターでこれを完全にテストできます。設定アプリを使用して、言語と地域の書式を設定するだけです。

于 2013-04-14T21:16:44.747 に答える