2016-02-18 79 views
0

我發生以下問題:隱藏鍵盤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

回答

0

它看起來像你的textFieldDidEndEditing和其他方法,甚至沒有叫。請確保您設置UITextField的委託:

textField.delegate = self 

而且導入UITextFielDelegate在您的類。

希望幫助:)

+0

感謝您的回覆,我有這樣的設置。 –