键盘弹出事件
来源:互联网 发布:重装系统 知乎 编辑:程序博客网 时间:2024/04/29 16:06
将键盘弹出事件抽离,可以控制键盘弹起时视图的控制,主要用于控制view、tableView、scrollView
- (instancetype)init {
if (self = [superinit]) {
[selfkeyBoard];
}
returnself;
}
+ (instancetype)keyBoardWithSuperView:(UIView *)superView scrollView:(UIScrollView *)scrollView delegate:(id)delegate {
LJBKeyBoard *keyBoard = [[selfalloc] init];
keyBoard.delegate = delegate;
[superView addSubview:keyBoard];
keyBoard.superView = superView;
keyBoard.scrollView = scrollView;
return keyBoard;
}
- (void)keyBoard {
//键盘弹出的通知。
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyBoardShow:)name:UIKeyboardWillShowNotificationobject:nil];
//键盘隐藏的通知。
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyBoardHide:)name:UIKeyboardWillHideNotificationobject:nil];
}
#pragma mark - 获取键盘弹出通知
- (void)keyBoardShow:(NSNotification *)note {
NSDictionary *dict = note.userInfo;
CGRect endRect = [dict[@"UIKeyboardFrameEndUserInfoKey"]CGRectValue];
CGFloat endKeyY =0;
UIView *view =self.superView;
if ([[[UIDevicecurrentDevice] systemVersion]floatValue] < 8.0) {
endKeyY = view.frame.size.height - endRect.size.width;
} else {
endKeyY = endRect.origin.y;
}
UIScrollView *scrollView =self.scrollView;
CGPoint offSet = scrollView.contentOffset;
CGFloat currTextMaxY = [self.delegateljbKeyBoardGetMaxY];
CGFloat Fheight = (scrollView.frame.origin.y + currTextMaxY-offSet.y);
if (Fheight > endKeyY) {
view.transform =CGAffineTransformMakeTranslation(0, endKeyY - Fheight);
}
}
#pragma mark - 获取键盘隐藏通知
- (void)keyBoardHide:(NSNotification *)note {
self.superView.transform =CGAffineTransformIdentity;
}
1.具体的使用步骤 viewDidLoad 中定义事件 如果为tableview或者scrollview上弹起时,scrollview:传递具体的参数scrollView:self.tableView、scrollView:self.scrollView[LJBKeyBoardkeyBoardWithSuperView:self.viewscrollView:nildelegate:self];
2.实现代理返回具体的位置
#pragma mark - 键盘代理事件(必须实现以下代理)
- (CGFloat)ljbKeyBoardGetMaxY {
UITextField *textField = (UITextField *)[self.viewviewWithTag:self.selTag];
returnCGRectGetMaxY(textField.frame);
}
- 处理键盘弹出事件
- 键盘弹出事件
- 键盘弹出的响应事件
- ios上捕捉键盘弹出hide事件
- Android 键盘弹出和关闭事件
- input弹出的手机键盘搜索事件
- cocos2dx 弹出键盘无法响应键盘外的触摸事件
- android下当键盘弹出时拦截Back事件
- iOS UITextField 获得焦点后,阻止弹出键盘事件
- Android事件触发EditText焦点和自动弹出键盘
- h5 input focus事件 键盘弹出 屏幕滚动
- UISearchController自动弹出键盘,调用becomeFirstResponder变为第一响应事件
- Android事件触发EditText焦点和自动弹出键盘
- textview点击弹出键盘的回车键,添加相应事件
- 移动端输入框弹出键盘触发搜索按钮事件
- Swift--监听iPhone键盘弹出及隐藏事件
- Android监听系统输入法键盘弹出显示与隐藏事件
- 弹出键盘
- 自动填充短信验证码实现方式
- English_study 单位
- JS判断网页是在安卓打开还是IOS打开
- 怎么将Beyond Compare文本比较设置行的缩进
- C/C++——map的基本操作总结
- 键盘弹出事件
- spring data redis 1.7.1
- Json(1)
- 11gRAC安装grid软件时网络配置报错
- 全球最杰出的14位程序员
- win7环境下VS2012下配置boost_1_61_0
- jq选择器 属性值 等于 以开头 以结尾 的某元素 所有元素
- Emoji 又一次引发争论:苹果拒绝步枪 emoji 表情
- BOS项目练习(项目概述,环境,页面[easyUI,Ztree],数据库PowerDesigner)