我正在学习Objective-C,并开始制作一个简单的计算器。我打了几个墙。我有2个显示器,当前输入的数字,以及显示到目前为止输入的所有内容的较小显示器。我也有一个“清除”按钮。
我想要它,以便如果用户点击“清除”按钮一次,它会清除主显示,并将其标题更改为“AC”(全部清除)。如果然后再次点击 我希望它清除到目前为止输入的所有内容的较小显示。
一切正常,但我遇到了问题,因为当用户开始输入另一个号码时,我希望按钮返回只是“清除”。
我有一个@property(非原子)BOOL userIsInTheMiddleOfEnteringANumber; 和该属性的@synthesize。
我怎样才能使userIsInTheMiddleOfEnteringANumber == YES,我可以设置我必须更改的清除按钮(或@property(非原子)BOOL allClear)?
答案 0 :(得分:0)
一种解决方案是不@synthesize
userIsInTheMiddleOfEnteringANumber
属性,并自己编写代码。
向您的班级添加私人BOOL
变量,并撰写userIsInTheMiddleOfEnteringANumber
和setUserIsInTheMiddleOfEnteringANumber:
方法。 getter应返回“backing”变量; setter应检查旧值和新值,以查看旧值是NO
,新值是YES
。在这种情况下,设置者应该根据需要更改按钮的标题。
答案 1 :(得分:0)
将按钮标题的名称添加为clear
- (void)viewDidLoad{
[super viewDidLoad];
[myButton setTitle:@"Clear" forState:UIControlStateNormal];
}
并且在清除所有内容的方法中将按钮标题设为AC
- (void)clearAllAndACMethod{
if(userIsInTheMiddleOfEnteringANumber==Yes)
{
[myButton setTitle:@"AC" forState:UIControlStateNormal];
userIsInTheMiddleOfEnteringANumber=NO;
}
else{
another type code and
[myButton setTitle:@"Clear" forState:UIControlStateNormal];
userIsInTheMiddleOfEnteringANumber=YES;
}
//remaining method with
}
根据你的需要选择bool值,因为我认为我没有正确地给你bool值。试试这个它会工作正常