什么时候UITextField的文本属性设置?

时间:2011-07-20 17:33:15

标签: objective-c uibutton uitextfield

我一直有一个有趣的问题。我同时拥有UIButtonUITextField,我们分别称他们为myButtonmyField。现在,当用户按下myButton时,应该将[myField text]的内容保存到另一个我们称之为otherVar的变量中。现在,当我输入myField并点击返回键时,一切正常,但是当我在myButton之前按myField时,存储在otherVar中的字符串总是看起来像:

<UIButtonContent: 0x4e13c60 Title = (null), Image = <UIImage: 0x4b50980>, Background = (null), TitleColor = UIDeviceWhiteColorSpace 1 1, ShadowColor = UIDeviceWhiteColorSpace 0 0.5>

在用户按下返回键,保留文本字段之前,是否设置了[myField文本]?而且,有没有办法告诉用户在按myField之前是否已离开myButton

以下是myButton

的IBAction代码
-(IBAction)myButton:(id)sender{
    if (![[myField text] isEqualToString:@""]) {
    [[[appDelegate moduleList] objectAtIndex:[appDelegate moduleNum]] setOtherVar:[myField text]];
     }
}

谢谢!

2 个答案:

答案 0 :(得分:2)

尝试在[myField resignFirstResponder];方法中的if语句之前添加IBAction。这应该提交已经进行的任何文本编辑,并填充text属性。

答案 1 :(得分:0)

您可以使用通知确切地知道UITextField何时更改了其值,已经讨论过in the docs here

有关通知的更多信息here

还有UITextFields的委托方法,可让您了解编辑的开始和结束时间,以及其他事项 - docs here