键盘隐藏后iPhone视图未重置

键盘隐藏后iPhone视图未重置,iphone,xcode,keyboard-events,Iphone,Xcode,Keyboard Events,我使用了一本书的例子,当键盘显示时,它向上滑动视图,以避免覆盖文本字段 除了在背景上单击隐藏键盘时,我的视图会向上滑动,而不会向下滑动之外,一切都正常。键盘隐藏,但视图保持向上移动。如果我用回车键隐藏键盘,一切正常。以下是我的代码: - (void)keyboardWillShow:(NSNotification *)notif { NSDictionary* info = [notif userInfo]; NSValue* aValue = [info objectForKe

我使用了一本书的例子,当键盘显示时,它向上滑动视图,以避免覆盖文本字段

除了在背景上单击隐藏键盘时,我的视图会向上滑动,而不会向下滑动之外,一切都正常。键盘隐藏,但视图保持向上移动。如果我用回车键隐藏键盘,一切正常。以下是我的代码:

- (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;
}
我很难弄明白为什么在触摸背景以隐藏键盘时,键盘后的动画视图被隐藏


再次感谢您的帮助。

将动画语句中的“UIControl”更改为“UIView”

将动画语句中的“UIControl”更改为“UIView”

只有当您点击键盘上的返回按钮时,才会调用
textFieldShouldReturn
方法。要捕获各种键盘消失,请使用
textfielddidediting


另一种方法是注册
UIKeyboardWillHideNotification
以及
UIKeyboardWillShowNotification
textFieldShouldReturn
方法仅在点击键盘上的返回按钮时调用。要捕获各种键盘消失,请使用
textfielddidediting


另一种方法是注册
UIKeyboardWillHideNotification
以及
UIKeyboardWillShowNotification

您是否验证了当您单击后台(未完成)时,它会触发您的TextField应返回方法?嗯,我应该早检查一下。它不会激发我的textFieldShouldReturn方法。你知道为什么吗?你有没有验证过当你点击背景(不是“完成”)时,它会触发你的textFieldShouldReturn方法?嗯,我应该早点检查一下。它不会激发我的textFieldShouldReturn方法。你知道为什么吗?