Несмотря на то, что я искал, я не уверен, как лучше к этому подойти.
У меня есть tableView, где нижняя ячейка является входом в список, точно так же, как работают напоминания об яблоках.Когда в списке слишком много элементов, клавиатура закрывает список, и я не вижу, что набираю.
Я подумал, что мне нужно изменить физический размер представления таблицы и убедиться, чтокогда клавиатура показывает, прокручивается до конца.
Некоторые говорят, что наблюдатели клавиатуры, но большая часть кода, который я нашел для этого, устарели и содержат ошибки при вводе в Xcode.
NSNotificationCenter Swift 3.0 на клавиатуре показывает и скрывает
Это лучшее, что я могу найти, но я также слышу о ограничениях, используя UITableViewController вместо встраивания UITableView и так далее ...
Это код, который у меня есть на данный момент:
NotificationCenter.default.addObserver(self, selector: #selector(EntryViewController.keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(EntryViewController.keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
@objc func keyboardWillShow(notification: Notification) {
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
print("notification: Keyboard will show")
if self.view.frame.origin.y == 0{
self.view.frame.origin.y -= keyboardSize.height
}
}
}
@objc func keyboardWillHide(notification: Notification) {
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y != 0 {
self.view.frame.origin.y += keyboardSize.height
}
}
}
Я думаю, это перемещает весь вид вверх, что означает, что безопасные области (такие как панель навигации и т. Д.) Имеют TableView под ними.Я делаю навигационное представление непрозрачным в этом подходе?