方法:通过通知监听键盘的动态
1.键盘的动态有四种:
public static let UIKeyboardWillShow: NSNotification.Name public static let UIKeyboardDidShow: NSNotification.Name public static let UIKeyboardWillHide: NSNotification.Name public static let UIKeyboardDidHide: NSNotification.Name
2.下面监听下弹出之前,和回收之前的事件
//键盘弹起 @objc private func willShow(nottification:NSNotification){ let info:NSDictionary = nottification.userInfo as NSDictionary! // print(info) //通过输出看到下面的信息 /* Optional([AnyHashable("UIKeyboardCenterBeginUserInfoKey"): NSPoint: {207, 849}, AnyHashable("UIKeyboardIsLocalUserInfoKey"): 1, AnyHashable("UIKeyboardCenterEndUserInfoKey"): NSPoint: {207, 623}, AnyHashable("UIKeyboardBoundsUserInfoKey"): NSRect: {{0, 0}, {414, 226}}, AnyHashable("UIKeyboardFrameEndUserInfoKey"): NSRect: {{0, 510}, {414, 226}}, AnyHashable("UIKeyboardAnimationCurveUserInfoKey"): 7, AnyHashable("UIKeyboardFrameBeginUserInfoKey"): NSRect: {{0, 736}, {414, 226}},
AnyHashable("UIKeyboardAnimationDurationUserInfoKey"): 0.25]) */ //取出键盘的高度 let keyValue = info.object(forKey: "UIKeyboardFrameEndUserInfoKey") let keyRect = (keyValue as AnyObject).cgRectValue let height = keyRect?.size.height print(height!) } //键盘收起 @objc private func willHide(nottification:NSNotification){ }