How to check text field input at real time?

前端 未结 7 1647
Happy的楠姐
Happy的楠姐 2020-12-09 21:07

I am writing validation for my textfield, I found something interesting that whether I can check how many digits I am typing into the textfield at real time. My text field i

相关标签:
7条回答
  • 2020-12-09 21:52

    Using -textField:shouldChangeCharactersInRange:replacementString: is probably a bad solution because it fires before the text field updates. This method should probably be used when you want to change the text of the text field before the keyboard automatically updates it. Here, you probably want to simply use target-action pairing when editing value changes:

    [textField addTarget:self action:@selector(checkTextField:) forControlEvents:UIControlEventEditingChanged];
    

    Then, in - (void)checkTextField:(id)sender, try this:

    UITextField *textField = (UITextField *)sender;
    if ([textField.text length] == 8) {
        textField.textColor = [UIColor greenColor]; // No cargo-culting please, this color is very ugly...
    } else {
        textField.textColor = [UIColor blackColor];
        /* Must be done in case the user deletes a key after adding 8 digits,
           or adds a ninth digit */
    }
    
    0 讨论(0)
提交回复
热议问题