0

アプリのログインを作成していますが、UITextField'sレスポンダーに問題があります。2 つのフィールドがあり、1 つはメール用、もう 1 つはパスワード用です。最初のものには戻るための「次へ」ボタンがあり、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て完了キーを押すと、アプリは正常に動作し、キーボードが非表示になります。

4

3 に答える 3

0

これは私のコードです

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if (textField == fieldUsername) {
        [fieldPassword becomeFirstResponder];
    } else if (textField == fieldPassword) {
        [self doLogin];
    }
    return YES;
}
于 2012-10-09T12:54:20.783 に答える
0
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{    
        if (textField == emailField) {
            NSLog(@"NEXT");
            [emailField resignFirstResponder];
            [passwordField becomeFirstResponder];
        }
        else if (textField == passwordField) {
            [passwordField resignFirstResponder];
        }
    return YES;
}
于 2012-10-09T12:55:48.620 に答える
0
   - (BOOL)textFieldShouldReturn:(UITextField *)textField
 {    
if ([emailField isFirstResponder]) {
    NSLog(@"NEXT");
   [passwordField becomefirstresponder];///add this 
} else if ([passwordField isFirstResponder]) {
    [passwordField resignFirstResponder];
}
return YES;
}
于 2012-10-09T12:56:42.723 に答える