ios / xcode / objective c:捕获文本字段中的最后一次击键

时间:2015-05-20 14:51:15

标签: ios textfield ontouchevent

我有一种方法可以在用户遇到多个条件时启用我想要触发的保存按钮,例如,用户名至少为4个字符。为了测试这些条件,我需要检查每次按键。什么是最好的触摸事件(通过故事板)来捕捉这个?

尝试了#34;编辑结束了"但是,在您单击文本字段之前,这不会触发。一旦textfield具有可接受的条目,我就更愿意看到按钮。还尝试了内部修饰和价值改变,但似乎都没有工作。

什么是最佳触摸事件,以便用户输入第四个字符时,按钮是否已启用?

这是textfield连接到的动作方法。请注意,它没有说明故事板中存在的触摸事件。

- (IBAction)changedText:(id)sender {
    [self updateSaveButton];

-(void) updateSaveButton
{
    NSString *name = self.username.text;
    NSLog(@"update save button called");
    self.submitButton.enabled = (name.length > 3);
}

1 个答案:

答案 0 :(得分:1)

我所做的是为文本字段指定委托。在这种情况下,委托将是您在问题中显示的类代码的实例。

委托发送了一堆委托消息,记录在UITextFieldDelegate中。在这种情况下,我将使用的是textField:shouldChangeCharactersInRange:replacementString:,每次用户执行任何建议更改字段中文本的内容时都会触发。{/ p>

只需根据需要做出回应,然后返回“是”以允许进行更改。

或者,您可以将文本字段视为控件(UIControl),并使用文本字段的“编辑已更改”控件事件来设置目标 - 操作对。但在实际操作中,我总是最终使用委托方法。