0

クリアボタンのある電卓を開発しています。番号を含むラベル全体を簡単にクリアできますが、ボタンクリックで1桁ずつクリアする必要があります。これは可能ですか。どうすれば実装できますか?

-(IBAction)cancelOperation
{
currentNumber = 0;

calculatorScreen.text = @ "0.00";

currentOperation = 0;
}
4

2 に答える 2

1

何をするか、一度に文字を削除すると思います。このメソッドをボタンに入れてみてください

編集

これを試して

-(IBAction)cancelOperation
    {
      NSString *str = [[NSString alloc]initWithString:label.text];
      NSString *deleteOne;
      deleteOne = [str substringToIndex:[str length]-1];
      label.text = deleteOne;

double型の変数を設定したい場合でも、これを使用します

     currentOperation = [deleteOne doubleValue];
     }

編集2

ここでわかるように、あなたはラベルの削除を求めました

数字を含むラベル全体を簡単にクリアできますが、ボタンのクリックで数字ごとにクリアする必要があります

ただし、これは数値変数 currentNumber で数値を減らす方法です

-(IBAction)cancelOperation
    NSString *str = [NSString stringWithFormat:@"%i", currentNumber];
    NSString *deleteOne;
    deleteOne = [str substringToIndex:[str length]-1];
    currentNumber = [deleteOne intValue];
    NSLog(@"%i", currentNumber);
}

この時点で、この方法が良くないかどうか、私は問題とあなたの質問を理解していないと思います

于 2012-05-29T11:32:11.077 に答える
0
    -(IBAction)cancelOperation
    {
    currentNumber = 0;
    NSString* str = calculatorScreen.text;
    calculatorScreen.text = [str substringToIndex:[string length]-1];;

    currentOperation = 0;
    }
于 2012-05-29T11:41:48.377 に答える