我有两个UITextField
的视图,一个用于用户名,一个用于密码。
我添加了功能,因此usernameTF
返回按钮会跳转到passwordTF
。我还在passwordTF
“Go”上做了一个返回按钮,我想连接到一个IBAction
我将包含实际的登录逻辑。
我尝试将IBAction
连接到passwordTF的Did End On Exit
方法,但当usernameTF
使passwordTF
成为第一个响应者时,似乎正在调用。< / p>
我正在使用此代码从usernameTF
跳转到passwordTF
:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if (textField == self.usernameTextField) {
[self.passwordTextField becomeFirstResponder];
}
[textField resignFirstResponder];
return YES;
}
我尝试了这个但是当我按下Go / Return时它不会调用该方法:
[self.passwordTextField addTarget:self
action:@selector(loginButtonPressed:)
forControlEvents:UIControlEventEditingDidEndOnExit];
我还尝试将IBAction
连接到UITextField
的{{1}}方法,该方法在按下返回按钮时调用该方法,但是当我点击任何按钮时它也会调用该方法Editing Did End
,而不是我与该方法相关的那个。任何修复?
答案 0 :(得分:1)
您可以尝试使用此
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
if (textField == txtfEmail)
[txtfPassword becomeFirstResponder];
else {
[self login];
}
return YES;
}
[self login]
实际上是被调用的登录方法。从服务器或数据库验证登录凭据。 txtfEmail是登录名,txtfPassword是密码字段。希望它有所帮助
答案 1 :(得分:0)
@RahulSharma几乎就在那里,但并不完全。 它通过以下方法解决了 2个问题:
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
// [textField resignFirstResponder];
if (textField == txtfEmail) {
[txtfPassword becomeFirstResponder];
return NO; // Otherwise the "Return" char is posted onto next view
} else {
[self login];
}
return YES;
}
resignFirstResponder
NO
将确保CR不会被发送到下一个控件