Swift 5、如何获取键盘通知

Swift 5, How do I get notifications from the keyboard

我看到其他人从 NotificationCenter 中获得了 swift 4.2 中的方法 .userInfo...我的问题是如何找到 swift5.2 中的 userInfo...它告诉我当我走到这一步时

  @objc func keyboardWillShow(notification: NotificationCenter) {
if let keyboardsize = (notification.userInfo?)
}

那个.userInfo?不是 NotificationCenter 的一种方法...那么如果我无法获得键盘高度等信息,如何让我的视图适应键盘

首先,我假设您正在监听键盘通知事件,即 Notification.Name.UIKeyboardWillShow

其次,它不是NotificationCenter类型,它是Notification

类型

要获取特定的键盘框架,您可以使用 UIKeyboardFrameEndUserINfoKey

关于此枚举的更多信息here

有关如何在通知的用户信息中获取框架的示例


  @objc
    func keyboardWillShow(notification: Notification) {
        if let keyboardFrame = notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue {
             let keyboardFrame = keyboardFrame.cgRectValue
              //print keyboardFrame.height
        }
}