在事件触发时,如何防止自定义UIButton将titleLabel重置为IB默认值

7

在IB中,我有一个视图,其中包含一个自定义类型的UIButton,它没有图像,并且标题设置为“#placeholder”。

该视图附加到一个类,该类为按钮提供了一个IBOutlet和一个IBAction。

每当需要时,我使用以下代码设置按钮标题:ViewClass.ButtonOutlet.titleLabel.text = @"%@",stringifiedVariable;

这个方法可以正常工作。但是,当我单击按钮时,titleLabel.text会恢复为“#placeholder”。

我尝试在检查器中的属性选项卡的绘图部分中取消选中“高亮调整图像”,但行为仍然相同。

是否可以防止此更改?还是我应该使用更好的模式?

2个回答

12

UIButton有一个特殊的方法可以设置标签。

  • (void)setTitle:(NSString *)title forState:(UIControlState)state

例如:

NSString *buttonText = [NSString stringWithFormat:@"%@",stringifiedVariable];
[ViewClass.ButtonOutlet setTitle:buttonText forState:UIControlStateNormal];

请查看文档以获取更多细节。


0
如果您希望在单击文本时不更改它,最简单的方法是从IB中将标题移出按钮,然后使用Jongsma的setTitle:forState:方法。

我最初尝试了这个;按钮根本没有显示任何文本。 - Luke Mcneice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接