2015-05-05 3 views
0
  1. phoneTextField;
  2. emailTextField;

, если я начну вводить в телефонTextField, emailTextField не разрешать символ. , если длина телефонаTextField станет 0, значит, только emailTextField разрешит символ.Как сделать UITextField с ограничениями

в том же виде, что и при начале ввода текста электронной почтыTextField, phoneTextField не допускает символа. , если длина emailTextFile станет равной 0, значит, только PhoneTextField позволит использовать символ.

Пожалуйста, поделитесь пример кода ..

+0

ли гугла вы его? – iAnurag

+0

Я пытаюсь, но не пришел правильно. – user2841148

ответ

2

Вы можете использовать эти методы делегата для выполнения этого действия

- (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; 

} 
+0

спасибо большое .. Он работает. – user2841148

0

Использование TextField делегат

Установить оба ваших TextFields delegate к self

В textFieldDidBeginEditing: отключить другой TextField.

Затем в - textFieldDidEndEditing: проверить длину этой textfield.If длины == 0, установлено другое текстовое поле позволило

Swift пример

Я случайно есть два TextField с именем пользователя и пароль. Просто замените

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 
     } 
    } 
} 
+1

Я действительно думаю, что если вы включите текстовое поле, но пользователь не может ввести ничего. Это не пользователь fridendly – Leo

0

Используйте метод делегата из текстового файла и изменить в соответствии с вашими требованиями, как в примере ниже ..

- (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; 
    } 
0

Выполните следующие вещи, которые вы получите выход желание. Здесь 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; 
} 

Надеюсь, это поможет вам.