无法从自己的Touch Up Inside事件中更改UIButton的标题

时间:2013-01-30 18:47:07

标签: objective-c cocoa-touch uibutton uikit ibaction

我刚刚注意到UIButton中的这种疯狂行为:

如果我尝试从按钮的内部触摸事件中触发的IBAction设置UIButton的标题,则标题会更改,但会很快恢复为旧值。

如果我在其他按钮的内部触摸事件中执行此操作,则按预期工作。

猴子生意在做什么?

- (IBAction)removeText:(id)sender {

    [[sender titleLabel] setText:@"New Text"];

}

2 个答案:

答案 0 :(得分:1)

titleLabel是一个只读属性。你想使用:

[sender setTitle:@"title" forState:UIControlStateNormal];

编辑:实际上,查找titleLabel自己的属性仍然可以访问,但是setTitle解决方案是可行的....

答案 1 :(得分:0)

正确的方法是:

- (IBAction)removeText:(id)sender {
   [(UIButton*)sender setTitle:@"New Text" forState: UIControlStateNormal];
}