I have a very simple CustomIDatePicker
class written in Swift 5, which has a toolbar on top that contains a 'Done' button. The issue is, the keyboard never retracted when this button was pressed. I have tried 4 different methods, please see details below:
import UIKit
class CustomDatePicker: UIDatePicker {
var zTextField: UITextField!
let toolbar = UIToolbar()
convenience init(textField: UITextField) {
self.init()
// bar buttons
let doneBtn = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(donePressed(sender:)))
toolbar.sizeToFit()
toolbar.setItems([doneBtn], animated: true)
self.datePickerMode = .date
// link up the Text Field
zTextField = textField
zTextField.inputAccessoryView = toolbar
zTextField.inputView = self
}
@objc func donePressed (sender: UIBarButtonItem) {
print("done pressed") // this line appeared in the debugger
//self.resignFirstResponder()
//self.inputView?.resignFirstResponder()
//self.endEditing(true)
self.inputView?.endEditing(true) // tried all of these 4, but keyboard always remained in view
}
}
A very simple ViewController to test this class:
class ViewController: UIViewController {
@IBOutlet weak var theTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
let datePicker = CustomDatePicker(textField: theTextField)
}
}
Any help would be greatly appreciated!