我为iPhone iOS 4和Xcode 4开发了一个项目。
有一种方法可以知道用户是否修改了UITextField的文本?
例如,我有2个UITextField,textFieldA和textFieldB,并假设textField包含一些文本为“abc”。
用户首先点击textFieldA(键盘打开),然后点击textFieldB。如何知道textFieldA中的文本是否已被用户修改?
谢谢。
答案 0 :(得分:5)
如何:首先订阅头文件中的文本字段委托:
<UITextFieldDelegate>
然后在您的实现文件(.m)中的某处,您可以添加:
myTextField.delegate = self;
现在您可以访问文本字段的委托方法。这意味着您现在可以使用:
-(void)textFieldDidBeginEditing:(UITextField *)textField
和-(void)textFieldDidEndEditing:(UITextField *)textField
为什么不在textFieldDidBeginEditing中存储文本字段的值,并将其与textFieldDidEndEditing中的值进行比较? `
答案 1 :(得分:0)
您必须实施uitextfielddelegate
协议。查看文档以获取更多详细信息。
答案 2 :(得分:0)
最好让文本字段向控制器发送UIControlEventValueChanged
操作消息。这样您就不必怀疑用户是否实际编辑了文本字段。您可以在IB中连接目标/操作,也可以以编程方式执行:
[myTextField addTarget:self
action:@selector(textFieldValueChanged:)
forControlEvents:UIControlEventValueChanged];
然后在目标中实施适当的操作:
- (IBAction)textFieldValueChanged:(UITextField *)sender {
// text field value was changed
}
对此进行了更详细的讨论
答案 3 :(得分:0)
将操作连接到文本字段并选择“值已更改”事件,然后每次用户更改文本字段的值(文本)时,操作都将执行