数字键盘的退格键不会更新textField.text.length

| 我目前正在用xcode格式化文本字段,每第5个字符我加一个连字符。 但是,我现在有很多麻烦,我现在想检查一下我的textfields.text.length,然后当长度达到23个字符时,可以按下提交按钮。到目前为止,我无法解决的问题是,如果用户输入23个字符并且如果用户决定返回并删除一个字符,则该按钮是可按下的,则没有什么可以更新新的文本长度,因为我不知道如何抓住数字键盘的删除按钮...剂量有人知道该怎么做吗?
   - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    NSString *separator = @\"-\";
    int seperatorInterval = 5;
    NSString *originalString = [regTextField.text stringByReplacingOccurrencesOfString:separator withString:@\"\"];



    if (![originalString isEqualToString:@\"\"] && ![string isEqualToString:@\"\"]) {

        NSString *lastChar = [regTextField.text substringFromIndex:[regTextField.text length] - 1];
        int modulus = [originalString length] % seperatorInterval;
        [self validateTextFields];

        if (![lastChar isEqualToString:separator] && modulus == 0) {

            regTextField.text = [regTextField.text stringByAppendingString:separator];
        }
    }
    [self validateTextFields];
    return YES;
}

    -(IBAction) validateTextFields {

    if (regTextField.text.length >= 22){
        [submitButton setEnabled:YES]; //enables submitButton
    } 
    else {
        [submitButton setEnabled:NO]; //disables submitButton

    }

}
    
已邀请:
尝试这样的事情: -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)范围replaceText:(NSString *)text {     //添加的任何新字符都作为\“ text \”参数传递     if(!([[text isEqualToString:@ \“ \”] && range.length == 1)&& [textView.text length]> = 140){         返回否;     }     //对于其他任何字符,请返回TRUE,以便将文本添加到视图中     返回是; } 凡块: ([text isEqualToString:@ \“ \”] && range.length == 1) 是退格键的检查。 捕获数字键盘上的退格键     

要回复问题请先登录注册