美文网首页iOS基础
键盘监听封装

键盘监听封装

作者: 需要帮助的乘客 | 来源:发表于2017-12-12 14:01 被阅读59次

考虑到项目多处使用监听来处理键盘弹出时的页面遮挡问题 就讲键盘监听的响应事件用block封装在工具类中。实现方法如下

.h文件

//添加键盘监听

typedef void (^keyBoardWillShowAction) (CGFloat keyBoardHight);

typedef void (^keyBoardWillDissMissAction) (CGFloat keyBoardHight);

@property (nonatomic, copy) keyBoardWillShowAction showBlock;

@property (nonatomic, copy) keyBoardWillDissMissAction dissMissBlock;

- (void)addKeyBoardObservershowBlock:(keyBoardWillShowAction)showBlockAction dissMissAction:(keyBoardWillDissMissAction)dissMissAction;

.m文件:

- (void)addKeyBoardObservershowBlock:(keyBoardWillShowAction)showBlockAction dissMissAction:(keyBoardWillDissMissAction)dissMissAction;

{

self.showBlock = showBlockAction;

self.dissMissBlock = dissMissAction;

//监听当键盘将要出现时

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(keyboardWillShow:)

name:UIKeyboardWillShowNotification

object:nil];

//监听当键将要退出时

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(keyboardWillHide:)

name:UIKeyboardWillHideNotification

object:nil];

}

//当键盘出现

- (void)keyboardWillShow:(NSNotification *)notification

{

NSDictionary *userInfo = [notification userInfo];

NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];

CGRect keyboardRect = [value CGRectValue];

CGFloat height = keyboardRect.size.height;

self.showBlock(height);

}

//当键退出

- (void)keyboardWillHide:(NSNotification *)notification

{

NSDictionary *userInfo = [notification userInfo];

NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];

CGRect keyboardRect = [value CGRectValue];

CGFloat height = keyboardRect.size.height;

self.dissMissBlock(height);

}

使用方法

[[APIString shareInstance] addKeyBoardObservershowBlock:^(CGFloat keyBoardHight) {

            [UIView animateWithDuration:0.5 animations:^{

        //出现时候的事件

        }];

} dissMissAction:^(CGFloat keyBoardHight) {

        [UIView animateWithDuration:0.5 animations:^{

        //消失时候的事件

        }];

}];

相关文章

  • 键盘监听封装

    考虑到项目多处使用监听来处理键盘弹出时的页面遮挡问题 就讲键盘监听的响应事件用block封装在工具类中。实现方法如...

  • iOS键盘高度适应

    背景 部分视图存在随键盘高度变化而自适应位置。所以需要监听键盘的高度变化。这里做个结合RxSwift做个简单封装。...

  • 2.4 UITableView-聊天布局

    键盘处理 1.监听键盘通知// 监听键盘通知[[NSNotificationCenter defaultCente...

  • iOS开发监听键盘事件

    注册通知监听器,监听键盘弹起事件 注册通知监听器,监听键盘收起事件 键盘弹出调用该方法 键盘收起调用该方法 开始视...

  • vue 监听键盘回车事件

    官网点这里传送门 vue运行为v-on在监听键盘事件: 添加了特殊的键盘修饰符: 如果用了封装组件的话,比如ele...

  • Android关于键盘相关知识

    弹出键盘和收起键盘 弹出键盘 关闭键盘 监听键盘的回车键 监听键盘弹出和收起以及键盘高度 最近开发总结(关于键盘监...

  • 键盘上方的bar

    *如何让键盘上方的 EditBar 随着键盘移动?(1)添加监听、监听事件: (2)移除监听:

  • IOS计算弹出键盘的高度

    通过通知监听键盘的弹出与消失,并在输入框和键盘之间添加一个灰色的view 当键盘出现增加监听 //增加监听,当键盘...

  • iOS键盘弹出消失监听

    iOS 监听键盘的弹出,收起,并且拿到键盘的高度 //监听当键盘将要出现时 [[NSNotificationCen...

  • iOS获取键盘高度

    iOS获取键盘高度 (1)注册监听,监听键盘的弹出 [[NSNotificationCenter defaultC...

网友评论

    本文标题:键盘监听封装

    本文链接:https://www.haomeiwen.com/subject/ywtnixtx.html