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

ios/xcode/objective c: Capture last keystroke in textfield

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

已尝试 "Editing did end" 但是,只有在您点击文本字段外时才会触发。我宁愿在文本字段具有可接受的条目后立即启用按钮。还尝试在内部进行修饰,值发生变化,但似乎都不起作用。

什么是最好的触摸事件,以便在用户键入第四个字符后立即启用按钮?

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

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

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

我所做的是为文本字段分配一个委托。在这种情况下,委托人将使用您在问题中显示其 class 代码的实例。

向委托人发送了一堆委托消息,记录在 UITextFieldDelegate 中。在这种情况下,我将使用的是 textField:shouldChangeCharactersInRange:replacementString:,每当用户执行任何建议更改字段中文本的操作时都会触发它。

只需按照您认为合适的方式做出回应,然后 return YES 允许更改发生。

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