如何知道用户是否修改了UITextField的文本

时间:2011-08-09 14:21:37

标签: iphone ios4 uitextfield

我为iPhone iOS 4和Xcode 4开发了一个项目。

有一种方法可以知道用户是否修改了UITextField的文本?

例如,我有2个UITextField,textFieldA和textFieldB,并假设textField包含一些文本为“abc”。

用户首先点击textFieldA(键盘打开),然后点击textFieldB。如何知道textFieldA中的文本是否已被用户修改?

谢谢。

4 个答案:

答案 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
}

this question

对此进行了更详细的讨论

答案 3 :(得分:0)

将操作连接到文本字段并选择“值已更改”事件,然后每次用户更改文本字段的值(文本)时,操作都将执行