嗨,这是我在SO的第一篇文章。
我正在使用.UIKeyboardWillChangeFrame通知,以获取键盘的动态高度并相应地更新其他视图。
但是当我在iPhone X模拟器中切换到EMOJI或中文手写键盘时,UIKeyboardWillChangeFrame通知不会被调用。
它在iPhone X以外的模拟器中运行得很好(例如iPhone 5,6,再加......)。
NotificationCenter.default.addObserver(self,
selector : #selector(self.keyboardWillChangeFrame(withNotification:)),
name : .UIKeyboardWillChangeFrame,
object : nil)
@objc func keyboardFrameWillChange(withNotification notification : Notification)
{
if let size = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue
{
print("will display EMOJI with height : \(size.height)")
}
}
仅在iPhone X模拟器中测试,而不在真实设备中测试(很难获得一个T_T)
XCode版本:最新9.1(9B55) 模拟器版本:iPhone X(iOS 11.0.1),iPhone X(iOS 11.1)