我一直有一个有趣的问题。我同时拥有UIButton
和UITextField
,我们分别称他们为myButton
和myField
。现在,当用户按下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)myButton:(id)sender{
if (![[myField text] isEqualToString:@""]) {
[[[appDelegate moduleList] objectAtIndex:[appDelegate moduleNum]] setOtherVar:[myField text]];
}
}
谢谢!
答案 0 :(得分:2)
尝试在[myField resignFirstResponder];
方法中的if语句之前添加IBAction
。这应该提交已经进行的任何文本编辑,并填充text
属性。
答案 1 :(得分:0)
您可以使用通知确切地知道UITextField
何时更改了其值,已经讨论过in the docs here。
有关通知的更多信息here。
还有UITextFields
的委托方法,可让您了解编辑的开始和结束时间,以及其他事项 - docs here。