iPhone键盘在视图消失后消失

3
原因未知,iPhone键盘在视图过渡完成消失。为了解决这个问题,我尝试在函数viewWillDisappear()中调用resignFirstResponder()。我把我的resignFirstResponder()函数放在一个连接到启动过渡的按钮中。但是键盘仍然会在视图过渡消失。
我还想提一下,在键盘消失之前进行过渡的视图是一个反向过渡,这可能是问题的源头。但是我不能确定是不是这个原因。
@IBOutlet weak var emailAddressTextField: TextField!
@IBOutlet weak var passwordTextField: TextField!

override func viewDidLoad() {
    super.viewDidLoad()
    emailAddressTextField.becomeFirstResponder()
}

@IBAction func cancelButtonTapped(sender: AnyObject) {
    resignFirstResponder()
}

override func viewWillDisappear(animated: Bool) {
    resignFirstResponder()
}

那么,有人有解决这个问题的办法吗?

是的,你说得对。然而,一旦VC2被关闭并显示VC1,那么键盘就会消失。但是,如果程序能够正常工作,VC2应该被关闭,然后键盘或键盘和VC2,然后VC1应该出现。希望这样更清楚明白。 - Jae Kim
问题是键盘在VC1显示后消失。 - Jae Kim
明白了!有几个问题 - 在移动到VC2之前,您是否在VC1上显示警报视图?您是在调用cancelButtonTapped后移动到VC2吗? - Abhinav
我不认为我正在显示任何警报视图。而VC2是一个解开的转场,所以它从VC2退出到VC1。因此,我假设取消按钮被点击后会调用解开的转场。 - Jae Kim
但我不确定这是真的,因为键盘没有及时消失。 - Jae Kim
显示剩余5条评论
1个回答

3
尝试调用-endEditing:方法,这将导致视图(或其中一个嵌入的文本字段)放弃第一响应者状态。 Objective-C
[self.view endEditing:YES];

SWIFT

self.view.endEditing(true);

最好在哪里调用它? - Jae Kim
2
只有在方法 viewWillDisappear() 中调用它才有效。所以在函数中调用它,就可以工作了! - Jae Kim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接