隐藏键盘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

+0

,如果你想在viewWillDisappear关闭键盘,你可以尝试self.view.endEditing(假的)任何第一个响应者,如果它还是不收,你可以尝试self.view.endEditing( true),这将强制关闭键盘 – HardikDG

+0

在你描述的情况下,是否所有的'textFieldDidBeginEditing'代码实际执行? – matt

+0

关闭键盘。尝试'self.view.endEditing = true' – anhtu

它看起来像你的textFieldDidEndEditing和其他方法,甚至没有叫。请确保您设置UITextField的委托:

textField.delegate = self 

而且导入UITextFielDelegate在您的类。

希望帮助:)

+0

感谢您的回复,我有这样的设置。 –