我遇到以下问题:
我有两个 TextField,一个具有默认行为,另一个捕获 textFieldDidBeginEditing 方法委托(delegate),以呈现具有PresentationStyle(自定义)和 TransitionStyle(CrossDissolve)的 UIViewController。到目前为止一切正常。但是,如果我编辑第一个文本字段(并保持键盘打开),然后转到第二个文本字段,则键盘打开,我无法关闭它(就好像第一个文本字段失去焦点一样,甚至在以下情况下也不会调用 textFieldShouldReturn我按下按钮简介)。
我尝试过:
- TextFieldDidEndEditing(用于调用resignFirstResponder)
在viewWillDissaper方法中(我也称为resignFirstResponder)
func textFieldShouldReturn(textField: UITextField) -> Bool { textField.resignFirstResponder() return true } func textFieldDidEndEditing(textField: UITextField) { print("Resign Last TextField") textField.resignFirstResponder() } func textFieldDidBeginEditing(textField: UITextField) { print("Did Begin editing") if textField == self.departing || textField == self.returning{ textField.resignFirstResponder() self.lastTextFieldSelected = textField let datePickerViewController = Util.getViewController("DatePickerViewController") as! DatePickerViewController datePickerViewController.dateStyle = NSDateFormatterStyle.ShortStyle datePickerViewController.modalTransitionStyle = UIModalTransitionStyle.CrossDissolve datePickerViewController.modalPresentationStyle = UIModalPresentationStyle.Custom datePickerViewController.datePickerDelegate = self self.presentViewController(datePickerViewController, animated: true, completion: nil) } }
编辑: 我尝试使用 self.view.endEditing(true) 什么都不做。
我做了一个小例子(我检查的是 textFieldShouldBeginEditing 允许我关闭键盘。): https://github.com/Abreu0101/TextFieldBug
最佳答案
看起来您的 textFieldDidEndEditing
和其他方法甚至没有被调用。确保设置 UITextField
的委托(delegate):
textField.delegate = self
同时在您的类中导入 UITextFielDelegate
。
希望有帮助:)
关于ios - 隐藏键盘 IOS Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35485846/