iOS 8 Keyboard Dismissed delay after modal view co

2019-02-21 15:38发布

问题:

In iOS 8+ I noticed that if you have an textfield that is currently the firstResponder in a view controller that was presented, when the view controller is dismissed, the keyboard hangs around for around 1 second before being dismissed.

This occurs for both iOS 8.0 and 8.1 and not 7.1.

Any ideas why this is?

回答1:

According to this, in iOS 8 it seems the view doesn’t resign first responder status until it’s actually offscreen.

http://prod.lists.apple.com/archives/cocoa-dev/2014/Sep/msg00391.html

Our workaround is to call [self.view endEditing:YES] in -viewWillDisappear.



回答2:

For Swift 3/4

override func viewWillDisappear(_ animated: Bool) {
    self.view.endEditing(true)
}

Also if it's not resigning try calling resignFirstResponder on the text field you're trying to end typing on.

override func viewWillDisappear(_ animated: Bool) {
    textField.resignFirstResponder()
}