Простое решение, которое я мог найти - работает с , Swift 4.2 - надеется, что это помогает :)
extension UITextField {
func addDoneButtonOnKeyboard() {
let keyboardToolbar = UIToolbar()
keyboardToolbar.sizeToFit()
let flexibleSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace,
target: nil, action: nil)
let doneButton = UIBarButtonItem(barButtonSystemItem: .done,
target: self, action: #selector(resignFirstResponder))
keyboardToolbar.items = [flexibleSpace, doneButton]
self.inputAccessoryView = keyboardToolbar
}
}
Затем можно обработать сделанное действие в textFieldDidEndEditing
метод делегата или просто добавить пользовательский метод для расширения и установить его в селекторе doneButton
.