我发生了以下问题:
我有两个TextField,一个具有默认行为,另一个捕获textFieldDidBeginEditing方法委托,以呈现带有PresentationStyle(Custom)和TransitionStyle(CrossDissolve)的UIViewController。到目前为止一切正常。但是,如果我编辑第一个textField(并保持键盘打开)然后转到第二个,键盘打开,我无法关闭它(好像第一个textField失去了焦点,甚至没有调用textFieldShouldReturn时)我按下按钮介绍。
我尝试过:
在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
答案 0 :(得分:0)
看起来你的textFieldDidEndEditing
和其他方法甚至都没有被调用。确保设置UITextField
的委托:
textField.delegate = self
同时导入班级中的UITextFielDelegate
。
希望有所帮助:)