ios - iOS 7 上的 viewDidDisappear 后键盘不会消失

标签 ios ios7 uikeyboard

在我们的应用中,有一种情况是用户在文本框中输入内容,然后按下返回按钮返回主屏幕。

如果我们在 iOS 7 上运行它,键盘不会消失,它只是停留在那里。用户仍然可以在应用程序中导航,但所有文本字段都被禁用,这意味着您无法在任何地方输入文本。用户唯一的选择是终止应用程序并重新开始。

我们尝试添加 resignFirstResponder 消息,但这没有任何帮助。

涉及的代码很多,我们正在积极处理这个问题。同时,有没有人也遇到过这个问题,也许找到了解决它的方法?

最佳答案

我在为 iOS 7 编译应用程序时遇到了和你一样的问题,我做了以下更改:

  1. 确保在关闭 viewController 之前添加 [textfield resignFirstResponder] 例如:

    [_passwordInput resignFirstResponder];
    [_emailInput resignFirstResponder];
    [self performSegueWithIdentifier:@"forgotPassword" sender:self];
    
  2. 为了确保键盘消失,在 viewWillDisappear 中添加 [textfield resignFirstResponder] 例如:

    - (void) viewWillDisappear:(BOOL)animated
    {
       [_passwordInput resignFirstResponder];
       [_emailInput resignFirstResponder];
    }
    
  3. 如果您的 viewController 是使用 UIModalPresentationFormSheet 呈现的,请将此添加到您的 viewController 以确保文本字段将响应 resignFirstResponder:

    - (BOOL)disablesAutomaticKeyboardDismissal
    {
       return NO;
    }
    

在您的情况下,覆盖后退按钮操作或仅使用 viewWillDisappear 检查用户何时按下后退按钮,然后在 [super viewWillDisappear ] 像这样:

-(void) viewWillDisappear:(BOOL)animated 
{
   [_passwordInput resignFirstResponder];
   [_emailInput resignFirstResponder];
   [super viewWillDisappear:animated];
}

关于ios - iOS 7 上的 viewDidDisappear 后键盘不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18892685/

相关文章:

ios - self.nextResponder 与 super for touchesMoved

ios - 调整使用 UIGraphicsBeginImageContextWithOptions 截取的屏幕截图的大小

ios - 带负数的 UIKeyboardTypeDecimalPad

uitableview - 在 iOS7 中将搜索栏与导航栏相结合时,会清空 UISearchbar 空间吗?

ios - 触摸 UITextField 之外的任何地方时如何关闭键盘(快速)?

ios - 旋转设备时,我应该如何调整 inputAccessoryView 的大小?

ios - 获取 UIScrollView 的当前位置

ios - 从回调调用 objective-c 方法

ios - 与 automaticallyAdjustsScrollViewInsets 的兼容性

ios - 启用iOS通知中心,但隐藏状态栏?