如何在启用键盘返回键之前在UITextField中要求最小文本长度

在我的应用程序用户注册或login需要密码至less6个字符的网站。 为了处理这个问题,我希望在启用键盘返回button之前在密码UITextField中join这个最小值。 在XIB中设置“自动启用返回键”会导致返回键被禁用,直到至less有一个字符(与我的预期相反),closures返回键即使没有文本也能返回。

任何人都可以告诉我如何才能保持返回键禁用,直到用户input6个字符?

在用户input6个密码字符之前,没有明显的方法来禁用返回键。 不过,我还有其他的解决scheme可以达到目的。

  1. 在密码字段下面写一个小信息 – “必须至less有6个字符”
  2. 当密码文本框失去焦点时显示警报。
-(void)textFieldDidEndEditing:(UITextField *)textField { if([password length] <6) Show alert. On alert dismiss code block do this -->[password becomeFirstResponder] // this takes the focus back to the password field after alert dismiss. } 
  1. 当用户按下回车键时显示警报。
     - (BOOL)textFieldShouldReturn:(UITextField *)textField { if([password length] <6) show alert like above. } 

正确的方法是使用textFieldShouldEndEditing:而不是textFieldDidEndEditing:

 - (BOOL)textFieldShouldEndEditing:(UITextField *)textField { BOOL shouldEnd = YES; if ([[textField text] length] < MINIMUM_LENGTH) { shouldEnd = NO; } return shouldEnd; } 

在Swift 3

 func textFieldShouldReturn(_ textField: UITextField) -> Bool { //delegate method textField.resignFirstResponder() if let txt = textField.text as? String { if(txt.length >= minimum){ textField.endEditing(true) } } return false }