iOS 11 дополнительное пространство между клавиатурой и аксессуаром View

У меня есть странная ошибка интерфейса inputAccessoryView и клавиатура. Код для добавления inputAccessoryView в viewDidLoad

        let keyboardToolbar = UIToolbar()
    keyboardToolbar.items = [
        UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil),
        UIBarButtonItem(title: "Hide", style: .done, target: self, action: #selector(resignFirstResponder))
    ]

    keyboardToolbar.barStyle = barStyle
    keyboardToolbar.sizeToFit()

    myTextfield.inputAccessoryView = keyboardToolbar

Первый раз при входе на экран и прикосновении к текстовому полю работает хорошо. После закрытия этого экрана (popViewController) и повторного входа в него и получения фокуса на textField я получил следующее: UIToolBar находится над клавиатурой. Пустое пространство имеет высоту = высота клавиатуры

UI ошибка изображения

2 ответа

Я не знаю причину, но обходной путь должен позвонить либо

view.endEditing

или же

textField.resignFirstResponder()

в

viewWillDisappear

Это потому, что в IOS 11 есть безопасная область, и это пространство появляется на iphone X

Проверьте это сообщение может быть продублировано

iPhone X, как обращаться с View Controller inputAccessoryView?

Другие вопросы по тегам