我刚刚注意到 UIButton 中的这种疯狂行为:
如果我尝试从在按钮的 touch up inside 事件中触发的 IBAction 设置 UIButton 的标题,则标题会更改,但会很快恢复为旧值。
如果我在其他按钮的内部事件中进行此操作,它会按预期工作。
搞什么鬼生意???
- (IBAction)removeText:(id)sender {
[[sender titleLabel] setText:@"New Text"];
}
我刚刚注意到 UIButton 中的这种疯狂行为:
如果我尝试从在按钮的 touch up inside 事件中触发的 IBAction 设置 UIButton 的标题,则标题会更改,但会很快恢复为旧值。
如果我在其他按钮的内部事件中进行此操作,它会按预期工作。
搞什么鬼生意???
- (IBAction)removeText:(id)sender {
[[sender titleLabel] setText:@"New Text"];
}
titleLabel 是一个只读属性。你想使用:
[sender setTitle:@"title" forState:UIControlStateNormal];
编辑:实际上,查找 titleLabel 自己的属性仍然可以访问,但是 setTitle 解决方案是要走的路......
正确的方法是:
- (IBAction)removeText:(id)sender {
[(UIButton*)sender setTitle:@"New Text" forState: UIControlStateNormal];
}