Пересмотрел код прошлых уроков.
В UITextView вроде все и просто, но возможностей у компонента много.
А пример получения сведений о размере клавиатуры доказывает что ничерта не знаешь. Что не ясно как это взять и где. что есть связь с классами NS*.
Пример:
guard
let userInfo = notification.userInfo as? [String: Any],
let keyboardFrame = (userInfo[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue else { return }
И все это ради keyboardFrame.height.
Еще очень непонятной осталась конструкция:
...
NotificationCenter.default.addObserver(self,
selector: #selector(updateTextView(notification:)),
name: UIResponder.keyboardWillShowNotification,
object: nil)
....
@objc func updateTextView(notification: Notification) { ... }
А именно: #selector(updateTextView(notification:)). Подозреваю что это особенности селектора. но тогда вопрос откуда уверенность что внутрь попадет нужный параметр и для чего такая свистопляска сложная нужна.
Опять же, возможно опыт разработки заставляет задавать такие вопросы, а не принимать на веру все как есть. Это с одной стороны тормозит обучение, с другой - вроде как пытаешься понять особенности языка. Спасает неплохая справка в самом коде. Хотя все и выглядит довольно чуждым до сих пор.
Всех с пятницей. И удачных выходных