当用户使用以下代码按下按钮时,我正在尝试更改按钮的标题:
- (IBAction) hideKB: (UIButton *) sender {
sender.titleLabel.text = @"↓";
}
但是当我点击应用程序崩溃时,我不明白为什么。
删除发件人的东西,按钮没有问题。
当用户使用以下代码按下按钮时,我正在尝试更改按钮的标题:
- (IBAction) hideKB: (UIButton *) sender {
sender.titleLabel.text = @"↓";
}
但是当我点击应用程序崩溃时,我不明白为什么。
删除发件人的东西,按钮没有问题。
动作的正确方法签名是
- (IBAction)action:(id)sender
您的应用程序正在崩溃,因为您的对象正在被发送一条它不理解的消息。
尝试用以下内容替换您的代码:
- (IBAction)hideKB:(id)sender {
UIButton *button = (UIButton *)sender;
[button setTitle:@"↓" forState:UIControlStateNormal];
}
您可能会注意到,我还更改了设置按钮标题的行。这是因为您不应该直接操作 aUIButton
的titleLabel
属性,而是应该使用如上所示的适当的 setter 方法。
编辑:为了澄清,大多数控件将允许您使用点表示法来编辑text
其titleLabel
. 但是,UIButton
实例支持不同的标题(以及图像和背景图像),具体取决于它们所处的状态。
如果您想知道为什么 aUIButton
可能处于几种不同状态之一,那么您经常看到的一个很好的例子就是“灰显”的按钮。这意味着这些按钮处于UIControlStateDisabled
状态。您可以在文档中找到控件的所有可能状态的列表。
您可以尝试:
[(UIButton *)sender setTitle: @"↓"" forState: UIControlStateNormal];
更多信息可以参考UIButton 类参考中的 setTitle:forState:
希望这可以帮助。
尝试使用
- (void)setTitle:(NSString *)title forState:(UIControlState)state
例如
[sender setTitle:"↓" forState:UIControlStateNormal];