Ios 如何使UITextField具有限制 phoneTextField emailTextField

Ios 如何使UITextField具有限制 phoneTextField emailTextField,ios,iphone,xcode6,uitextfield,uitextfielddelegate,Ios,Iphone,Xcode6,Uitextfield,Uitextfielddelegate,如果我开始输入phoneTextField,emailTextField不允许输入字符。 如果phoneTextField长度将变为0,则表示只有emailTextField允许使用字符 与开始键入emailTextField时相同,phoneTextField不允许使用字符。 如果emailTextFile长度将变为0,则表示只有phoneTextField允许使用字符 请共享示例代码。使用textfield delegate 将两个文本字段delegate设置为self 在textfield

如果我开始输入phoneTextField,emailTextField不允许输入字符。 如果phoneTextField长度将变为0,则表示只有emailTextField允许使用字符

与开始键入emailTextField时相同,phoneTextField不允许使用字符。 如果emailTextFile长度将变为0,则表示只有phoneTextField允许使用字符

请共享示例代码。

使用textfield delegate

将两个文本字段
delegate
设置为
self

textfielddebeginediting:
禁用其他textfield

然后在
-textfielddendediting:
中检查此textfield的长度。如果长度==0,则将其他textfield设置为启用

Swift示例

我碰巧有两个名为用户名和密码的文本字段。替换

func textFieldDidBeginEditing(textField: UITextField) {
    if textField == usernameTextfield{
        passwordTextField.enabled = false
    }
    if textField == passwordTextField{
        usernameTextfield.enabled = false
    }
}
func textFieldDidEndEditing(textField: UITextField) {
    if count(textField.text)==0{
        if textField == usernameTextfield{
            passwordTextField.enabled = true
        }
        if textField == passwordTextField{
            usernameTextfield.enabled = true
        }
    }
}

使用文本文件的委托方法,并根据您的要求进行更改,如下面的示例所示

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        if (textField==self.txtNewPassword || (textField == self.txtReNewPassword))
        {
            NSString *updatedText = [[textField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] stringByReplacingCharactersInRange:range withString:string];
            if (updatedText.length > CHARACTER_COUNT)
            {
                return NO;
            }
        }
        return YES;
    }

做以下事情你会得到渴望的输出。这里的
Enable
Desable
将满足您的要求

- (BOOL)textField:(UITextField *) textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {


    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        if (textField.tag == kTextFieldTagPassword && textField.text.length!=0)
        {
            emailTextField.enable = NO;

        }
        else{
            emailTextField.enable = YES;
        }

        if (textField.tag == kTextFieldTagEmail && textField.text.length!=0)
        {
            phoneTextField.enable = NO;

        }
        else{
            phoneTextField.enable = YES;
        }


    });


    return YES;
}

希望这对您有所帮助。

您可以使用此委托方法执行此操作

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if(textField == phoneTextFiled && (emailTextField.text.lenght == 0))
        return YES;

    else if(textField == emailTextField && (phoneTextFiled.text.lenght == 0))
        return YES;

    return NO;

}

你们在谷歌上搜索过吗?我试过了,但并没有找到正确的答案。我确实认为,若你们启用了一个文本字段,但用户不能键入任何内容。它不是用户星期五