在我的应用中,用户注册或登录需要密码至少6个字符的网站。为了解决这个问题,我想在启用键盘返回按钮之前将最小值强加到密码UITextField中。在XIB中设置自动启用返回键会导致返回键被禁用,直到至少有一个字符& (与我的期望相反)将其关闭会导致返回键即使没有文本也是如此。
在用户输入6个字符之前,有人能告诉我如何禁用返回键吗?
答案 0 :(得分:7)
在用户输入6个密码字符之前,没有明显的方法可以禁用返回密钥。但是,我可以为您提供其他可能有用的解决方案。
-(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. }
- (BOOL)textFieldShouldReturn:(UITextField *)textField { if([password length] <6) show alert like above. }
答案 1 :(得分:0)
正确的方法是使用textFieldShouldEndEditing:而不是textFieldDidEndEditing:
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
BOOL shouldEnd = YES;
if ([[textField text] length] < MINIMUM_LENGTH) {
shouldEnd = NO;
}
return shouldEnd;
}
答案 2 :(得分:0)
在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
}