クリアボタンのある電卓を開発しています。番号を含むラベル全体を簡単にクリアできますが、ボタンクリックで1桁ずつクリアする必要があります。これは可能ですか。どうすれば実装できますか?
-(IBAction)cancelOperation
{
currentNumber = 0;
calculatorScreen.text = @ "0.00";
currentOperation = 0;
}
何をするか、一度に文字を削除すると思います。このメソッドをボタンに入れてみてください
編集
これを試して
-(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);
}
この時点で、この方法が良くないかどうか、私は問題とあなたの質問を理解していないと思います
-(IBAction)cancelOperation
{
currentNumber = 0;
NSString* str = calculatorScreen.text;
calculatorScreen.text = [str substringToIndex:[string length]-1];;
currentOperation = 0;
}