隐藏键盘IOS斯威夫特
我发生以下问题:隐藏键盘IOS斯威夫特
我有两个文本字段,一个拥有默认行为,而另一方面,捕获textFieldDidBeginEditing方法的委托,来呈现一个UIViewController与PresentationStyle(自定义)和TransitionStyle (CrossDissolve)。到目前为止一切正常。但是,如果我编辑第一个textField(并将键盘保持打开状态),然后转到第二个,则键盘已打开,我无法关闭它(如果第一个textField失去焦点,甚至不会在调用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) } }
编辑: 我尝试用自.view.end编辑(true)什么也没有。
我做了一个小例子(这是我检查一下,是textFieldShouldBeginEditing让我可以关闭键盘。): https://github.com/Abreu0101/TextFieldBug
它看起来像你的textFieldDidEndEditing
和其他方法,甚至没有叫。请确保您设置UITextField
的委托:
textField.delegate = self
而且导入UITextFielDelegate
在您的类。
希望帮助:)
感谢您的回复,我有这样的设置。 –
,如果你想在viewWillDisappear关闭键盘,你可以尝试self.view.endEditing(假的)任何第一个响应者,如果它还是不收,你可以尝试self.view.endEditing( true),这将强制关闭键盘 – HardikDG
在你描述的情况下,是否所有的'textFieldDidBeginEditing'代码实际执行? – matt
关闭键盘。尝试'self.view.endEditing = true' – anhtu