У меня возникла следующая проблема:
У меня есть два TextField, одно имеет поведение по умолчанию, а другое захватывает делегат метода textFieldDidBeginEditing, чтобы представить UIViewController с PresentationStyle (Custom) и TransitionStyle (CrossDissolve). Пока все работает нормально. Но если я отредактирую первое текстовое поле (и оставлю клавиатуру открытой), а затем перейду ко второму, клавиатура будет открыта, и у меня нет возможности закрыть ее (как если бы первое текстовое поле потеряло фокус, даже не вызывается 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) } }
Изменить: я ничего не пытаюсь с self.view.endEditing (true).
Я привел небольшой пример (я проверяю, что textFieldShouldBeginEditing позволяет мне закрыть клавиатуру): https://github.com/Abreu0101/TextFieldBug
textFieldDidBeginEditing
код действительно выполняется? - person matt   schedule 18.02.2016self.view.endEditing = true
- person tuledev   schedule 18.02.2016