0

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

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

如果我在其他按钮的内部事件中进行此操作,它会按预期工作。

搞什么鬼生意???

- (IBAction)removeText:(id)sender {

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

}
4

2 回答 2

1

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

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

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

于 2013-01-30T18:50:15.713 回答
0

正确的方法是:

- (IBAction)removeText:(id)sender {
   [(UIButton*)sender setTitle:@"New Text" forState: UIControlStateNormal];
}
于 2013-01-30T18:52:05.810 回答