为什么不能通过点语法更改UIButton文本?

时间:2011-08-09 18:13:51

标签: iphone objective-c uibutton title

是否可以通过点语法更改UIButton标题标签文本?如果我通过点语法执行此操作,则文本不会更改:

self.myButton.titleLabel.text = [NSString stringWithString:@"Nop"];

但是这个确实:

[self.myButton setTitle: @"Yep" forState: UIControlStateNormal];

文本更改适用于纯UILabel,UIButton是特殊情况还是什么?

3 个答案:

答案 0 :(得分:10)

这是因为可以针对几种不同的状态(正常,突出显示等)更改UIButton的文本。 Apple只是选择要求显式代码来设置文本。如果你真的想要,你可以创建一个类别来实现它。

答案 1 :(得分:1)

UIButton可以为任何UIControlState重新配置他们的标题(见这里:UIControlState)。

由于使用点语法不会为任何特定状态设置标题,因此UIButton可能会重新配置UIControlStateNormal的标题,该标题设置为空。

答案 2 :(得分:0)

尝试

myButton.titleLabel.text=@"foo";

这里有效

[]的