我正在尝试在iPad键盘上显示UITextField。
当它显示通知时,我能够获得键盘的高度。
然而,在iPad中,通过更改键盘的语言输入 - >最有可能是日语,键盘的高度发生了变化,因为键盘顶部显示了一个文本假设区域,导致我的UITextfield被该区域隐藏....
有人知道我怎样才能获得高度变更通知或其他任何方式?
答案 0 :(得分:2)
答案是,当您切换语言时,UIKeyboardDidShowNotification
会针对每次更改触发,因此您始终可以获得更新的高度。
See my answer here关于如何设置对显示和隐藏的响应以及获得高度。
答案 1 :(得分:1)
<强>夫特强>
UIKeyboardDidShowNotification
不会再触发键盘尺寸更改。
改为使用UIKeyboardWillChangeFrameNotification
:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(instance.keyboardWillChange(_:)), name:UIKeyboardWillChangeFrameNotification, object: nil)
在函数:
let targetSize = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.CGRectValue()
重要提示:当键盘打开并隐藏时,此事件也会被触发,如果只需要尺寸,则可以替换UIKeyboardWillShowNotification
和UIKeyboardWillHideNotification