2

ユーザーが金額を入力する必要があるiOSアプリに取り組んでいます。最大値$9999.99でドルとセントを入力できるようにする必要があります

私はそれがこのように機能することを望みます:「$0.00」と表示するテキストフィールドがあります。$5.25と入力すると、キーを押すたびに入力が変わります。したがって、次のようになります。「5」が押され、表示:$ 0.05「2」が押され、表示:$ 0.52「5」が押され、表示:$ 5.25

私はこれをさまざまな方法で機能させようとしましたが、すべて問題があります。NSNumberformatterの使用は正しく機能しません。ユーザーがバックスペースを押すと、リンクリストまたは配列の使用は機能しません。また、時間がかかりすぎるのではないかと心配しているので、スタックを実装したくありません。この問題にどのように取り組むべきかについてアドバイスしてください。ありがとう

4

2 に答える 2

1

これは、それを行う方法を示す単なる指標例です。このコードを調べて、状況に合わせて再適応する必要があります。それを試してみてください:

@autoreleasepool
{
    // Here I create the formatter and I set the format. You do this faster with setFormat: .
    NSNumberFormatter* formatter=[[NSNumberFormatter alloc]init];
    formatter.numberStyle= NSNumberFormatterCurrencyStyle;
    formatter.maximumIntegerDigits=6;
    formatter.maximumFractionDigits=2;
    formatter.currencySymbol= @"$";
    formatter.currencyDecimalSeparator= @".";
    formatter.currencyGroupingSeparator= @",";
    formatter.positivePrefix=@"";

    NSArray* numbers= @[ @1 ,@2 ,@3 ,@4, @5, @6, @7, @8  ];
    // These are the inserted numbers, you should change the code in a way that
    // every number is taken in input from the text field.
    float number=0.0f;
    for(NSUInteger i=0;i<8;i++)
    {
        // It just simulates what happens if the user types the numbers in the array.
        number= [numbers[i] floatValue] * 1.0e-2 + number*10;
        NSLog(@"%@",[formatter stringFromNumber: @(number)]);
    }
}
于 2013-02-19T20:37:50.743 に答える
0
NSString* formattedAmount = [NSString stringWithFormat:@"$%01d.%02d",dollars,cents];
于 2013-02-19T20:53:02.100 に答える