uitextfield 响应程序的问题



我正在为我的应用程序创建登录名,但我对UITextField's响应者有问题。我有 2 个字段,其中一个用于电子邮件,另一个用于密码。第一个,有返回的"下一步"按钮,第二个是"完成"按钮。问题是我正在开发该按钮的逻辑。textfieldShouldReturn方法是这样的:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{    
    if ([emailField isFirstResponder]) {
        NSLog(@"NEXT");
    } else if ([passwordField isFirstResponder]) {
        [passwordField resignFirstResponder];
    }
    return YES;
}

关于字段的代码:

CGRect frame = CGRectMake(20, 0, 280, 44);
emailField = [[UITextField alloc] initWithFrame:frame];
[emailField setPlaceholder:@"Correo electronico"];
[emailField setKeyboardType:UIKeyboardTypeEmailAddress];
[emailField setReturnKeyType:UIReturnKeyNext];
[emailField setClearButtonMode:UITextFieldViewModeWhileEditing];
[emailField setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];
[emailField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
[emailField setAutocorrectionType:UITextAutocorrectionTypeNo];
[emailField setDelegate:self];
passwordField = [[UITextField alloc] initWithFrame:frame];
[passwordField setPlaceholder:@"Contraseña"];
[passwordField setKeyboardType:UIKeyboardTypeDefault];
[passwordField setReturnKeyType:UIReturnKeyDone];
[passwordField setSecureTextEntry:YES];
[passwordField setClearButtonMode:UITextFieldViewModeWhileEditing];
[passwordField setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];
[passwordField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
[passwordField setAutocorrectionType:UITextAutocorrectionTypeNo];
[passwordField setDelegate:self];

当我在emailField中并按下一步键时,没有任何反应,但是如果我在passwordField中并按完成键,该应用程序工作正常并隐藏键盘。

这是我

的代码

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if (textField == fieldUsername) {
        [fieldPassword becomeFirstResponder];
    } else if (textField == fieldPassword) {
        [self doLogin];
    }
    return YES;
}
   - (BOOL)textFieldShouldReturn:(UITextField *)textField
 {    
if ([emailField isFirstResponder]) {
    NSLog(@"NEXT");
   [passwordField becomefirstresponder];///add this 
} else if ([passwordField isFirstResponder]) {
    [passwordField resignFirstResponder];
}
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{    
        if (textField == emailField) {
            NSLog(@"NEXT");
            [emailField resignFirstResponder];
            [passwordField becomeFirstResponder];
        }
        else if (textField == passwordField) {
            [passwordField resignFirstResponder];
        }
    return YES;
}

最新更新