0

次のコードを使用して、テキスト フィールドに入力された数値を変換し、USD 通貨を表示するようにフォーマットしています。したがって、$ 記号が表示され、(右から) 3 桁ごとに , が追加されます。テキストフィールドに書式設定されたテキストを設定しています。

- (void)textFieldDidEndEditing:(UITextField *)textField
{
   NSString *pureNumbers = [[textField.text componentsSeparatedByCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]] componentsJoinedByString:@""];

    //Convert entered text to NSNumber
    NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
    [f setNumberStyle:NSNumberFormatterDecimalStyle];
    NSNumber * myNumber = [f numberFromString:pureNumbers];

    NSString *currencyString = [currencyFormatter internationalCurrencySymbol]; 

    NSString *format = [currencyFormatter positiveFormat];
    format = [format stringByReplacingOccurrencesOfString:@"*" withString:currencyString];
    // ¤ is a placeholder for the currency symbol
    [currencyFormatter setPositiveFormat:format];

    NSString *currencyString1 = [currencyFormatter stringFromNumber:myNumber];

    NSLog(@"Text is %@",currencyString1);

    textField.text = currencyString1;
}

数値フォーマッタを削除して、入力した数値を取り戻すにはどうすればよいですか? 例: テキスト フィールドに 5000 と入力しました。テキスト フィールドで $5,000 にフォーマットされています。ユーザーが入力した元の値であるテキストフィールドから「5000」を取得したい。

4

2 に答える 2

1

これを行うコードが既に含まれているため、書式設定関数のほとんどを自分で作成するのではなく、どこかからコピーして貼り付けたと思います。最初の行で次のように言います。

NSString *pureNumbers = [[textField.text componentsSeparatedByCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]] componentsJoinedByString:@""];

これは文字列を取り、数値以外の文字を取り除きます。したがって、これはすでにあなたが望むことを正確に行います。例えばあなたが言うなら

NSString *pureNumbers = [@"$5,000" componentsSeparatedByCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]] componentsJoinedByString:@""];

pureNumbers 文字列は @"5000" に等しくなりました。それを実際に計算できる数値に変換するには、次のように言えます。

double number = [pureNumbers doubleValue];
于 2012-02-11T14:40:28.637 に答える
0

leftView次のプロパティを使用できますUITextField

  UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 15, 15)];
    label.text = @"$";
    label.font = [UIFont systemFontOfSize:10];
    [label sizeToFit];
    textField.leftView = label;
    [self.view addSubview:textField];

次に、テキストを取得します。変換や文字列操作は必要ありません。

于 2012-02-11T14:10:12.990 に答える