1

我正在学习objective-C,并从制作一个简单的计算器开始。不过,我已经撞了几堵墙。我有 2 个显示器,当前正在输入的数字,还有一个较小的显示器,显示迄今为止输入的所有内容。我还有一个“清除”按钮。

我想要这样,如果用户点击“清除”按钮一次,它会清除主显示,并将其标题更改为“AC”(全部清除)。如果它再次被击中,我希望它清除迄今为止输入的所有内容的较小显示。

一切正常,但我遇到了问题,因为我希望按钮在用户开始输入另一个数字时恢复为“清除”状态。

我有一个@property (nonatomic) BOOL userIsInTheMiddleOfEnteringANumber; 以及该属性的@synthesize。

我怎样才能做到这一点,以便每当 userIsInTheMiddleOfEnteringANumber == YES 时,我可以设置我必须更改的清除按钮(或 @property (nonatomic) BOOL allClear)?

4

2 回答 2

0

一种解决方案是不@synthesize使用该userIsInTheMiddleOfEnteringANumber属性,而是自己编写代码。

向您的类添加一个私有BOOL变量,并编写userIsInTheMiddleOfEnteringANumberandsetUserIsInTheMiddleOfEnteringANumber:方法。getter 应该返回“支持”变量;setter 应该检查旧值和新值,看看旧值是NO,新值是YES。在这种情况下,setter 应根据需要更改按钮的标题。

于 2013-06-27T03:14:34.110 回答
0

在方法 viewdidload 中将按钮标题的名称添加为 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  

}

根据您的需要更改布尔值,因为我认为我没有正确获得布尔值。试试这个,它会正常工作

于 2013-06-27T09:26:26.620 回答