Я должен получить высоту клавиатуры во время создания пользовательского интерфейса! Поэтому я не могу использовать метод, который контролирует высоту клавиатуры при ее появлении. Я просто получаю конечную статическую высоту, а не динамическую ~~, как я могу это сделать.Как я могу получить высоту клавиатуры?
ответ
Я могу вам сказать, что высота клавиатуры 216px в портретном и 162px в пейзаж, но используя фиксированную высоту клавиатуры плохой выбор , Начиная с iOS 8, пользователь может выбирать между различными сторонними клавиатурами и включать или отключать интеллектуальные текстовые сообщения, которые могут сделать клавиатуру выше.
iOS предоставляет удобные типы уведомлений, которые можно наблюдать в вашем контроллере просмотра. Этими уведомлениями являются:
NSNotification.Name.UIKeyboardWillShow
: отправлено непосредственно перед отображением клавиатуры.NSNotification.Name.UIKeyboardDidShow
: отправлено сразу после отображения клавиатуры.NSNotification.Name.UIKeyboardWillHide
: отправлено непосредственно перед увольнением с клавиатуры.NSNotification.Name.UIKeyboardDidHide
: отправлено сразу после увольнения с клавиатуры.NSNotification.Name.UIKeyboardWillChangeFrame
: отправлен непосредственно перед изменением рамки клавиатуры.NSNotification.Name.UIKeyboardDidChangeFrame
: отправлено сразу после изменения рамки клавиатуры.
Вы можете зарегистрироваться, чтобы эти уведомления путем добавления наблюдателя в viewDidLoad
или viewDidAppear
метода контроллера вида:
NotificationCenter.default.addObserver(self, selector: #selector(YourViewController.keyboardWillShow(notification:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
Кроме того, не забудьте удалить его в deinit
/viewDidDisappear
метод: NotificationCenter. default.removeObserver (self, name: NSNotification.Name.UIKeyboardWillShow, object: nil)
Создайте метод, связанный с вашим наблюдателем (в данном случае, keyboardWillShow(notification:)
:
func keyboardWillShow(notification : Notification) {
let info:NSDictionary = notification.userInfo! as NSDictionary
let keyboardSize = (info[UIKeyboardFrameBeginUserInfoKey] as! NSValue).cgRectValue
self.keyboardHeight = Double(keyboardSize.height)
}
Ссылка: https://developer.apple.com/reference/foundation/nsnotification.name
Если вам нужна высота для обработки клавиатуры, то мой друг, вы делаете это неправильно, просто используйте этот классный library и напишите это приложение делегировать
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
IQKeyboardManager.sharedManager().enable = true
return true
}
Эта библиотека будет обрабатывать все ваши хлопоты для обработки клавиатуры
Я сделал это в методе, который вызывается после уведомления клавиатуры. Это выглядит следующим образом:
func keyboardDidShow(notification: NSNotification) {
let keyboardInfo = notification.userInfo
let keyboardRect = keyboardInfo?[UIKeyboardFrameBeginUserInfoKey] as! CGRect
let keyboardSize = keyboardRect.size
var overviewRectangle = self.view.frame
overviewRectangle.size.height += keyboardSize.height
self.overviewScrollView.contentSize = overviewRectangle.size
self.overviewScrollView.setContentOffset(CGPoint.init(x: 0, y: (overviewRectangle.origin.y + keyboardSize.height)), animated: true)
}
func keyBoardDidDisappear(notification: NSNotification) {
let overviewRectangle = self.view.frame
self.overviewScrollView.contentSize = overviewRectangle.size
self.overviewScrollView.setContentOffset(CGPoint.init(x: 0, y: overviewRectangle.origin.y), animated: true)
}
гм ... это кажется немного комплекса, мне нравится то, что сказал Nicola –
~~ Я не думаю, что мои методы, что разные. Единственное различие заключается в том, что второй добавленный мной метод следует игнорировать, а первый метод настраивает вид прокрутки, поэтому экран адаптируется к размеру клавиатуры. – MacUserT
Я попробую ваш метод в следующий раз, когда мне это понадобится. –
- 1. Как получить высоту Android-клавиатуры?
- 2. Windows Phone Получить высоту клавиатуры
- 3. Получить высоту клавиатуры в Lollipop
- 4. Как я могу найти высоту мягкой клавиатуры в приложении LibGDX
- 5. Как получить высоту клавиатуры БЕЗ использования уведомлений
- 6. Как получить высоту клавиатуры iOS 8.3 emoji?
- 7. iOS 8 получить высоту клавиатуры
- 8. Как получить высоту клавиатуры при открытии приложения
- 9. Как получить высоту клавиатуры в viewDidLoad не после открытия клавиатуры
- 10. Как я могу получить фактическую высоту экрана?
- 11. Как я могу получить высоту экрана браузера?
- 12. Как я могу получить высоту ActionBar.Tab?
- 13. Как я могу получить ИСТИНУЮ высоту div?
- 14. Как я могу получить высоту UILabel?
- 15. получить высоту клавиатуры Android даже без отображения клавиатуры
- 16. Получить высоту клавиатуры Android БЕЗ ВЗГЛЯДА просмотра?
- 17. IOS: Получить правильную высоту thirdPart клавиатуры
- 18. Получить высоту клавиатуры или верхнее положение при открытии клавиатуры
- 19. Получите высоту клавиатуры iOS без отображения клавиатуры
- 20. Уменьшить высоту клавиатуры ios
- 21. Как получить высоту клавиатуры при создании активности в android
- 22. Как я могу получить исходный ввод с клавиатуры в VB.NET?
- 23. Как я могу получить события клавиатуры в таблицах Google?
- 24. Как я могу получить ввод непосредственно с клавиатуры?
- 25. Как я могу получить размер клавиатуры на iPhone?
- 26. Как я могу получить необработанные данные USB-клавиатуры с Python?
- 27. Как я могу получить состояние Caps Lock клавиатуры в javafx
- 28. Как получить высоту клавиатуры предложение бар окна телефон 8?
- 29. Как вычислить высоту клавиатуры в iOS?
- 30. (Android) Как я могу получить экранную ширину и высоту смартфона?
нормально, он может вычислить высоту Теперь –