我在Interface Builder中有一个UIButton,其初始标题为“Use Current Location”。上面有一个UITextField,用户可以在其中键入地址或邮政编码。按钮和文本字段都是IBOutlets。
存在这些项目的视图的视图控制器是UITextFieldDelegate
。在委托方法(BOOL)textFieldShouldReturn:(UITextField *)textField
中,我想根据文本字段中是否包含任何内容来更改按钮标题。我的方法如下:
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
NSLog([textField text]);
if([[textField text] length] == 0)
{
NSLog(@"AAAAAAAAA");
[go setTitle:@"Use Current Location" forState:UIControlStateNormal];
}
else
{
NSLog(@"BBBBBBB");
[go setTitle:@"Use This Address" forState:UIControlStateNormal];
}
[textField resignFirstResponder];
return YES;
}
注意:go
是UIButton
。
此方法未按预期执行,但每次都会记录正确的语句。按钮的标题不会改变。
特别感谢任何帮助。
答案 0 :(得分:9)
检查Interface Builder中的连接,确保按钮已连接到其插座,并且文本字段的委托已正确设置。
答案 1 :(得分:1)
您的“go”按钮是否正确连接?打印go按钮地址并检查它是否为非空。
答案 2 :(得分:1)
肯定与按钮未正确链接有关。 但是,显而易见的是,当您记录正确的日志语句时,您已经拥有了UITextField的委托。
祝你好运!