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

如果我開始鍵入phoneTextField,則emailTextField不允許字符。 如果phoneTextField長度將變爲0意味着那麼只有emailTextField將允許字符。如何製作帶限制的UITextField

與開始在emailTextField中輸入時一樣,phoneTextField不允許字符。 如果emailTextFile長度將變爲0意味着那麼只有phoneTextField將允許字符。

請分享示例代碼..

+0

你用Google嗎? – 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

使用文本框代表

同時設置你的文本框的delegateself

textFieldDidBeginEditing:禁止其他文本框。

然後在- textFieldDidEndEditing:檢查這個textfield.If長度== 0的長度,設置文本框等啓用

斯威夫特例如

我正好有一個名爲用戶名和密碼兩個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

做以下事情你會得到渴望的輸出。這裏EnableDesable將滿足您的要求。

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

希望這對你有所幫助。