我發生以下問題:隱藏鍵盤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
,如果你想在viewWillDisappear關閉鍵盤,你可以嘗試self.view.endEditing(假的)任何第一個響應者,如果它還是不收,你可以嘗試self.view.endEditing( true),這將強制關閉鍵盤 – HardikDG
在你描述的情況下,是否所有的'textFieldDidBeginEditing'代碼實際執行? – matt
關閉鍵盤。嘗試'self.view.endEditing = true' – anhtu