我正在开发一个计算器应用程序,并希望添加10个用户可以存储号码的存储寄存器。计算器的故事板上有一个" STO"用户想要存储条目时按下的按钮。按下的下一个数字按钮(按钮0,按钮1 ...按钮9)将表示存储该条目的寄存器。
该应用程序当前包含方法" STOButtonPressed":
- (IBAction)STOButtonPressed:(UIButton *)sender{
STOButtonPressed = YES;
}
我有一种方法可以在计算器中输入数字,称为digitPressed:
- (IBAction)digitPressed:(UIButton *)sender{
NSString* digit = sender.currentTitle;
[_audioPlayer play];
if(!(self.dotNotation && [digit isEqualToString:@"."])){
if([digit isEqualToString:@"."])
self.dotNotation=YES;
if(self.userIsInTheMiddleOfTyping){
self.displayLabel.text = [self.displayLabel.text stringByAppendingString:digit];
}
else
{
self.displayLabel.text = digit;
self.userIsInTheMiddleOfTyping = YES;
}
}
}
故事板中计算器上的每个数字按钮都被标记(按钮" 0"是标记" 0",按钮" 1"是标记" 1"等...)。
按下" STO"按钮,我希望下一个按钮(0到9)条目成为存储寄存器编号。我想在STOButtonPressed方法中设置存储寄存器编号。不确定是否可能,或者如果可能的话。我目前有几个" IF语句"用于确定存储寄存器号的digitPressed方法(此处未示出)。但这似乎非常麻烦,而且方法变得非常混乱。我想在STOButtonPressed方法中保留存储功能的所有代码。多年来我一直没有成功地工作,感觉我错过了什么。有人可以告诉我如何在STOButtonPressed方法中设置存储寄存器号,如果可能的话?
我正在使用Xcode 5。
答案 0 :(得分:0)
如果你已经正确设置了按钮的标签,那应该非常简单:
在您的媒体资源中,添加:
@property (nonatomic, assign) BOOL hasPressedSTOButton;
并更改此内容,因为您不希望在var和方法名称之间产生混淆:
- (IBAction)STOButtonPressed:(UIButton *)sender{
self.hasPressedSTOButton = YES;
}
并将您的代码更改为1-10而不是0-9,因为您要确保选中的是非零代码的按钮,而不是其他按钮。
然后像这样更改你的digitPressed
- (IBAction)digitPressed:(UIButton *)sender{
NSString* digit = sender.currentTitle;
[_audioPlayer play];
if(!(self.dotNotation && [digit isEqualToString:@"."])){
if([digit isEqualToString:@"."])
self.dotNotation=YES;
if(self.userIsInTheMiddleOfTyping){
self.displayLabel.text = [self.displayLabel.text stringByAppendingString:digit];
}
else
{
self.displayLabel.text = digit;
self.userIsInTheMiddleOfTyping = YES;
}
} else if (sender.tag != 0) {
//store your stuff here. Tags range from 1 to 10. Use sender.tag - 1 if you want the values to range from 0 to 9.
}
}