File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1616/* *
1717 * `QMUIKeyboardManager` 提供了方便管理键盘事件的方案,使用的场景是需要跟随键盘的显示或者隐藏来更改界面的 UI,例如输入框跟随在键盘的顶部。
1818 * 由于键盘通知是整个 App 全局的,所以经常会遇到 A 的键盘监听回调里接收到 B 的键盘事件,这样的情况往往不是我们想要的,即使可以通过判断当前的 firstResponder 来区分,但还是不能完美的解决问题或者有时候解决起来非常麻烦。`QMUIKeyboardManager` 通过 `delegateEnabled` 和 `targetResponder` 等属性来方便地控制 firstResponder,从而可以实现某个键盘监听回调方法只响应某个 UIResponder 或者某几个 UIResponder 触发的键盘通知。
19+ * 使用方式:
20+ * 1. 使用 initWithDelegate: 方法初始化
21+ * 2. 通过 addTargetResponder: 的方式将要监听的输入框添加进来
22+ * 3. 在 delegate 方法里(一般用 keyboardWillChangeFrameWithUserInfo:)处理键盘位置变化时的布局
23+ *
24+ * 另外 QMUIKeyboardManager 同时集成在了 UITextField(QMUI) 和 UITextView(QMUI) 里,具体请查看对应文件。
25+ * @see UITextField(QMUI)
26+ * @see UITextView(QMUI)
1927 */
2028@interface QMUIKeyboardManager : NSObject
2129
Original file line number Diff line number Diff line change 1919
2020// / 键盘相关block,搭配QMUIKeyboardManager一起使用
2121
22- @property (nonatomic , strong , readonly ) QMUIKeyboardManager *qmui_keyboardManager;
23-
2422@property (nonatomic , copy ) void (^qmui_keyboardWillShowNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
2523@property (nonatomic , copy ) void (^qmui_keyboardWillHideNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
2624@property (nonatomic , copy ) void (^qmui_keyboardWillChangeFrameNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
2725@property (nonatomic , copy ) void (^qmui_keyboardDidShowNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
2826@property (nonatomic , copy ) void (^qmui_keyboardDidHideNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
2927@property (nonatomic , copy ) void (^qmui_keyboardDidChangeFrameNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
3028
29+ @property (nonatomic , strong , readonly ) QMUIKeyboardManager *qmui_keyboardManager;
30+
3131@end
Original file line number Diff line number Diff line change 2626
2727// / 键盘相关block,搭配QMUIKeyboardManager一起使用
2828
29- @property (nonatomic , strong , readonly ) QMUIKeyboardManager *qmui_keyboardManager;
30-
3129@property (nonatomic , copy ) void (^qmui_keyboardWillShowNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
3230@property (nonatomic , copy ) void (^qmui_keyboardWillHideNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
3331@property (nonatomic , copy ) void (^qmui_keyboardWillChangeFrameNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
3432@property (nonatomic , copy ) void (^qmui_keyboardDidShowNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
3533@property (nonatomic , copy ) void (^qmui_keyboardDidHideNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
3634@property (nonatomic , copy ) void (^qmui_keyboardDidChangeFrameNotificationBlock)(QMUIKeyboardUserInfo *keyboardUserInfo);
3735
36+ @property (nonatomic , strong , readonly ) QMUIKeyboardManager *qmui_keyboardManager;
37+
3838@end
You can’t perform that action at this time.
0 commit comments