UIViewController's input view automatically opens on first time

566 views Asked by At

I have simple code which is set DatePicker as input view of UIViewController

var datePicker = UIDatePicker()

override var inputView: UIView? {
    return datePicker
}

override var canBecomeFirstResponder: Bool {
    return true
}

I have to write self.resignFirstResponder on viewDidAppear to forcefully hide the keyboard (date picker ), Why UIViewController becomes first responder automatically ?

enter image description here

1

There are 1 answers

0
Ron Liu On

IMHO, when you override var canBecomeFirstResponder to true, the containing viewController should be the first responder in responders chain immediately after the completion of its initiation. You may print isFirstResponder in viewDidLoad to verify my above assertion.

I would move inputView assignment to textField: didBeginEdit to avoid such issue.

Hope it helps.