SetTitle不会更改UIButton的文本

时间:2014-05-07 03:00:03

标签: ios objective-c uibutton

非常直接;只是尝试将我的按钮的显示名称从“按钮”更改为“a”。但是setTitle方法似乎没有做任何事情。我和UIState一起玩,这似乎没什么变化。

我可能需要合成任何东西吗?

[Button1 setTitle:@"a" forState:UIControlStateNormal];

编辑: 我做了一个NSLog,按钮显示为NULL,我被告知这意味着它没有正确连接。但我仔细检查了我的Connections Inspector,查看了H文件,一切似乎都很好。 (http://imgur.com/EFsp51U)我错过了什么?

H file and Connections Inspector

8 个答案:

答案 0 :(得分:3)

如果您已在Interface Builder中创建了按钮,请转到此处并将其类型更改为自定义。

enter image description here

并检查您是否正确连接了IBOutlet

答案 1 :(得分:2)

我开始挖掘我的代码,在我的viewDidLoad方法中,我有以下内容:

Button1 = NO;

我想我正试图输入"选择"但是分心了,没有回来,所以无意中关掉了我自己的按钮。正确的代码是:

self.Button1.selected=NO;

[self.Button1 setTitle:@"a" forState:UIControlStateNormal];

答案 2 :(得分:0)

  • 确保Button1不是nil
  • 确保Button1.hidden = NO;

答案 3 :(得分:0)

确保您已合成按钮。

//this assumes you have a button "myButton" declared in your interface file
@implementation
@synthesize myButton;

-(void) myMethod{
    [myButton setTitle:@"The new Title" forState:UIControlStateNormal];
}
@end

您应该通过IB插座将按钮连接到.h文件完全通过代码创建按钮。

最好不要以大写字母开头的变量名称。

答案 4 :(得分:0)

我不确定问题是关于线程的,但您可能想尝试在主线程上设置标题:

dispatch_async(dispatch_get_main_queue(), ^{
    [Button1 setTitle:@"a" forState:UIControlStateNormal];
});

答案 5 :(得分:0)

执行以下操作:

  1. 待办事项

    NSLog(@"%@", Button1);
    

    并检查它不是零。

  2. 检查

    NSLog(@"%d", btn.state);
    

    应该返回0。

答案 6 :(得分:0)

您的代码完全有效。但只是为了确保一切正常,请添加以下额外的行,

Button1.selected = NO;
[Button1 setTitle:@"a" forState:UIControlStateNormal];

答案 7 :(得分:0)

如果您还没有明确合成它,那么您应该调用

[_Button1 setTitle:@"a" forState:UIControlStateNormal];

[self.Button1 setTitle:@"a" forState:UIControlStateNormal];