Ios 如何使UITextField具有限制 phoneTextField emailTextField
如果我开始输入phoneTextField,emailTextField不允许输入字符。 如果phoneTextField长度将变为0,则表示只有emailTextField允许使用字符 与开始键入emailTextField时相同,phoneTextField不允许使用字符。 如果emailTextFile长度将变为0,则表示只有phoneTextField允许使用字符 请共享示例代码。使用textfield delegate 将两个文本字段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
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;
}
你们在谷歌上搜索过吗?我试过了,但并没有找到正确的答案。我确实认为,若你们启用了一个文本字段,但用户不能键入任何内容。它不是用户星期五