У меня была эта функция для перемещения определенных текстовых полей вверх, когда клавиатуры блокировали их обзор - я уверен, вы все об этом знаете:
override func viewDidLoad() {
super.viewDidLoad()
let center: NotificationCenter = NotificationCenter.default
center.addObserver(self, selector: #selector(keyboardDidShow(notification:)), name: NSNotification.Name?.UIKeyboardDidShow, object: nil)
center.addObserver(self, selector: #selector(keyboardWillHide(notification:)), name: NSNotification.Name?.UIKeyboardWillHide, object: nil)
}
Но когда я недавно обновился до Swift 4.2, они перестали работать, и появились следующие предложения:
Замените UIKeyboardDidShow на UIResponder.keyboardDidShowNotification и
Замените UIKeyboardWillHide на UIResponder.keyboardWillHideNotification.
Но когда я нажал «исправить», я получаю ошибку (x2):
Тип "NSNotification.Name" не имеет члена "UIResponder"
Мне это кажется багом? Этот xCode не может принять собственные изменения ?? Кто-нибудь сталкивался с этим и знает, что делать?
Спасибо!
Попробуй это
let notificationCenter = NotificationCenter.default
notificationCenter.addObserver(self, selector: #selector(adjustForKeyboard), name: UIResponder.keyboardWillHideNotification, object: nil)
notificationCenter.addObserver(self, selector: #selector(adjustForKeyboard), name: UIResponder.keyboardWillChangeFrameNotification object: nil)
Больше информации по этой ссылке: - введите описание ссылки здесь
Надеюсь, это вам поможет: D Спасибо
@AntonBjerg иногда случается при изменении иерархии классов: D наслаждайтесь
Работает как шарм (Y) Просто странно, что xCode не меняет его на это, если вы спросите меня!