Высота клавиатуры на разных устройствах iOS разная. Кто-нибудь знает, как программно получить высоту клавиатуры устройства?
ios
swift
uikeyboard
Lachtan
источник
источник
Ответы:
В Swift:
Вы можете узнать высоту клавиатуры, подписавшись на
UIKeyboardWillShowNotification
уведомление. (Предполагая, что вы хотите знать, какой будет высота, прежде чем она будет показана).Что-то вроде этого:
Swift 2
Swift 3
Swift 4
Затем вы можете получить доступ к высоте в
keyboardWillShow
функции следующим образом:Swift 2
Swift 3
Swift 4
источник
UIResponder.keyboardWillShowNotification
в бите имениSwift 3.0 и Swift 4.1
1- Зарегистрируйте уведомление в
viewWillAppear
методе:2- Метод, который будет вызван:
источник
keyboardWillShow
параметр типа,Notification
чтобы сделать его более совместимым с Swift 3.0.viewDidLoad
- не лучшая идея: куда поместить соответствующийremoveObserver
вызов, чтобы, когда этот VC больше не отображается, он перестал получать уведомления? Лучше поставить регистрацию для уведомленийviewWillAppear
, а потом поставитьremoveObserver
звонокviewWillDisappear
Swift 4 и ограничения
К вашему tableview добавьте нижнее ограничение относительно нижней безопасной области. В моем случае ограничение называется tableViewBottomLayoutConstraint.
источник
Обновление Swift 4.2
метод селектора:
расширение:
Обновить Swift 3.0
метод селектора:
расширение:
Наконечник
UIKeyboardDidShowNotification или UIKeyboardWillShowNotification могут быть вызваны дважды и получить другой результат; в этой статье объясняется, почему вызывается дважды.
В Swift 2.2
Swift 2.2 принижает с использованием строк для селекторов и вместо этого вводит новый синтаксис:
#selector
.Что-то вроде:
метод селектора:
расширение:
источник
Более короткая версия здесь:
источник
Свифт 4 .
Простейший метод
источник
Swift 5
источник
// Шаг 1: - Зарегистрируйте NotificationCenter
// Шаг 2: - Эти методы будут вызываться автоматически, когда клавиатура появляется или скрывается
источник
Метод ZAFAR007 обновлен для Swift 5 в Xcode 10
источник
Я должен был это сделать. это немного хакерство. не предлагается.
но я нашел это очень полезным,
я сделал расширение и структуру
Расширение ViewController + структура
Использование:
получить максимальное нижнее ограничение
вызвать функцию внутри viewDidLoad ()
Надеюсь на эту помощь.
-Вы клавиатура теперь автоматически закрывается, когда пользователь нажимает вне текстового поля, и
- при появлении клавиатуры все представление будет перемещаться на указанную выше клавиатуру. -вы
также можете использовать dismissKeyboard (), когда вам это нужно
источник
Я использую код ниже,
источник