Найти тему

UITextView. Клавиатура

Пересмотрел код прошлых уроков.

В 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:)). Подозреваю что это особенности селектора. но тогда вопрос откуда уверенность что внутрь попадет нужный параметр и для чего такая свистопляска сложная нужна.

Опять же, возможно опыт разработки заставляет задавать такие вопросы, а не принимать на веру все как есть. Это с одной стороны тормозит обучение, с другой - вроде как пытаешься понять особенности языка. Спасает неплохая справка в самом коде. Хотя все и выглядит довольно чуждым до сих пор.

Всех с пятницей. И удачных выходных