如何动态更改按钮标题(当bool具有某个属性时)

时间:2013-06-27 03:09:03

标签: c++ cocoa-touch properties uibutton setter

我正在学习Objective-C,并开始制作一个简单的计算器。我打了几个墙。我有2个显示器,当前输入的数字,以及显示到目前为止输入的所有内容的较小显示器。我也有一个“清除”按钮。

我想要它,以便如果用户点击“清除”按钮一次,它会清除主显示,并将其标题更改为“AC”(全部清除)。如果然后再次点击 我希望它清除到目前为止输入的所有内容的较小显示。

一切正常,但我遇到了问题,因为当用户开始输入另一个号码时,我希望按钮返回只是“清除”。

我有一个@property(非原子)BOOL userIsInTheMiddleOfEnteringANumber; 和该属性的@synthesize。

我怎样才能使userIsInTheMiddleOfEnteringANumber == YES,我可以设置我必须更改的清除按钮(或@property(非原子)BOOL allClear)?

2 个答案:

答案 0 :(得分:0)

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

向您的班级添加私人BOOL变量,并撰写userIsInTheMiddleOfEnteringANumbersetUserIsInTheMiddleOfEnteringANumber:方法。 getter应返回“backing”变量; setter应检查旧值和新值,以查看旧值是NO,新值是YES。在这种情况下,设置者应该根据需要更改按钮的标题。

答案 1 :(得分: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  

}

根据你的需要选择bool值,因为我认为我没有正确地给你bool值。试试这个它会工作正常