iPhone не сбрасывается после скрытия клавиатуры - PullRequest
2 голосов
/ 27 января 2011

Я использовал пример для книги, чтобы сдвинуть вид вверх, поскольку клавиатура показывает, что он не закрывает текстовые поля.

Все работает, за исключением того факта, что мой вид скользит вверх и делаетне скользить вниз, если я нажму на фон, чтобы скрыть клавиатуру.Клавиатура скрывается, но вид остается смещенным вверх.Если я использую клавишу возврата, чтобы скрыть клавиатуру, все работает нормально.Ниже приведен мой код:

- (void)keyboardWillShow:(NSNotification *)notif {
    NSDictionary* info = [notif userInfo];
    NSValue* aValue = [info objectForKey:
                       UIKeyboardBoundsUserInfoKey];
    CGSize keyboardSize = [aValue CGRectValue].size;
    float bottomPoint = (password.frame.origin.y+
                         password.frame.size.height+10);

    scrollAmount = keyboardSize.height -
    (self.view.frame.size.height- bottomPoint);
    if (scrollAmount > 0) {
        moveViewUp = YES;
        [self scrollTheView:YES];
    }
    else
        moveViewUp = NO;
}
- (void)scrollTheView:(BOOL)movedUp {
    [UIControl beginAnimations:nil context:NULL];
    [UIControl setAnimationDuration:0.3];
    CGRect rect = self.view.frame;
    if (movedUp){
        rect.origin.y -= scrollAmount;
    }
    else {
        rect.origin.y += scrollAmount;
    }
    self.view.frame = rect;
    [UIControl commitAnimations];
}

-(BOOL)textFieldShouldReturn:(UITextField *) theTextField {
    [theTextField resignFirstResponder];
    if (moveViewUp) [self scrollTheView:NO];
    return YES;
}

Мне трудно понять, почему вид, который анимируется после клавиатуры, скрыт при касании фона, чтобы скрыть клавиатуру

Еще разлюбая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2011

Метод textFieldShouldReturn вызывается только при нажатии кнопки возврата на клавиатуре. Чтобы поймать все виды исчезновения клавиатуры, используйте textFieldDidEndEditing.

Другой подход заключается в регистрации UIKeyboardWillHideNotification, а также UIKeyboardWillShowNotification.

0 голосов
/ 27 января 2011

Измените «UIControl» в ваших анимационных выражениях на «UIView».

...