获取键盘框架时出现问题

时间:2019-06-26 16:56:15

标签: ios swift

我有代码来计算可以正常工作的键盘的位置,但是在安装Xcode11 beta版本后,代码崩溃了

--network=host
  

“无法获取大小为16的值。预计编码为{CGRect = {CGPoint = dd} {CGSize = dd}}的类型为32个字节”

1 个答案:

答案 0 :(得分:1)

UIResponder.keyboardFrameBeginUserInfoKey返回 NSRect CGPoint

  

包含CGRect的NSValue对象的键,该CGRect标识了   屏幕坐标中键盘的起始帧矩形。的   框架矩形反映了设备的当前方向。

例如在iPhone X纵向模式下,它是:

AnyHashable("UIKeyboardFrameBeginUserInfoKey"): NSRect: {{0, 896}, {414, 243}}

改为使用此:

if let keyBoardPosition = (notification.userInfo?[UIResponder.keyboardFrameBeginUserInfoKey] as? CGRect)?.origin {
        if (self.frame.origin.y + self.frame.height) > keyBoardPosition.y {
            self.frame.origin.y -= (self.frame.origin.y + self.frame.height - keyBoardPosition.y)
        }
    }
}