iPhone的软键盘为216像素高,程序员不得不在软键盘弹出时想办法调整窗口视图,避免输入控件被弹出的软键盘所遮挡。
iPhone程序员普遍采用注册软键盘事件的观察者对象来对付这个问题。当软键盘弹出时,窗体的View被上移,当软键盘隐藏时,窗体的View恢复原来位置,这样就避免了输入控件被遮挡。
KeyBoardUtil是我写的一个类,正是使用了上述原理,但进行了一些封装,便于程序员使用。
它的使用很简单。首先在要使用的ViewController中导入头文件:
#import"KeyBoardUtil.h"
并在类中声明一个KeyBoardUtil成员变量:
KeyBoardUtil* keyboardUtil;
在类的初始化方法中,初始化KeyBoardUtil对象:
keyboardUtil=[[KeyBoardUtil alloc]initWithOwner:self offsetY:100];
ower参数为self,offsetY参数则指定了键盘弹出时窗口View将要上移的像素,一般最高为软键盘全高216,但也可以不需要移动那么多,请根据实际情况决定需要移动多少。
然后在View Controller的显示和隐藏事件中分别调用KeyBoardUtil的reg和unreg方法:
#pragma mark 注册/注销键盘弹出通知方法
-(void)viewWillDisappear:(BOOL)animated
{
[keyboardUtil unreg];
[keyboardUtil release];
}
-(void)viewWillAppear:(BOOL)animated
{
[keyboardUtil reg];
}
全部代码就这些,是不是方便了许多?如果你喜欢这个小东西,那么可以去资源里下载:http://download.csdn.net/detail/kmyhy/3887363
更正:由于粗心大意,在源文件 KeyBoardUtil.m 的 keyboardWillShow: 方法中,误把“int height = owner.interfaceOrientation == UIInterfaceOrientationPortrait ? -offsetY+bug20px
:-offsetY;”一行写成了
"int height = owner.interfaceOrientation == UIInterfaceOrientationPortrait ? -offsetY+bug20px :offsetY;”。特此更正,在此向各位朋友致歉。
iPhone的软键盘为216像素高,程序员不得不在软键盘弹出时想办法调整窗口视图,避免输入控件被弹出的软键盘所遮挡。
iPhone程序员普遍采用注册软键盘事件的观察者对象来对付这个问题。当软键盘弹出时,窗体的View被上移,当软键盘隐藏时,窗体的View恢复原来位置,这样就避免了输入控件被遮挡。
KeyBoardUtil是我写的一个类,正是使用了上述原理,但进行了一些封装,便于程序员使用。
它的使用很简单。首先在要使用的ViewController中导入头文件:
#import"KeyBoardUtil.h"
并在类中声明一个KeyBoardUtil成员变量:
KeyBoardUtil* keyboardUtil;
在类的初始化方法中,初始化KeyBoardUtil对象:
keyboardUtil=[[KeyBoardUtil alloc]initWithOwner:self offsetY:100];
ower参数为self,offsetY参数则指定了键盘弹出时窗口View将要上移的像素,一般最高为软键盘全高216,但也可以不需要移动那么多,请根据实际情况决定需要移动多少。
然后在View Controller的显示和隐藏事件中分别调用KeyBoardUtil的reg和unreg方法:
#pragma mark 注册/注销键盘弹出通知方法
-(void)viewWillDisappear:(BOOL)animated
{
[keyboardUtil unreg];
[keyboardUtil release];
}
-(void)viewWillAppear:(BOOL)animated
{
[keyboardUtil reg];
}
全部代码就这些,是不是方便了许多?如果你喜欢这个小东西,那么可以去资源里下载:http://download.csdn.net/detail/kmyhy/3887363
更正:由于粗心大意,在源文件 KeyBoardUtil.m 的 keyboardWillShow: 方法中,误把“int height = owner.interfaceOrientation == UIInterfaceOrientationPortrait ? -offsetY+bug20px
:-offsetY;”一行写成了
"int height = owner.interfaceOrientation == UIInterfaceOrientationPortrait ? -offsetY+bug20px :offsetY;”。特此更正,在此向各位朋友致歉。
分享到:
相关推荐
KeyboardUtilDemo
此资源为qt4.8软键盘代码(只完成了一个lineedit的功能),该软键盘类似于安卓系统键盘可点击输入框弹出软键盘
jquery弹出键盘输入框代码,用在登陆时用户点击输入框弹出软键盘。
禁止软键盘弹出,自定义键盘
在开发中,经常会遇到键盘挡住输入框的情况,比如登录界面或注册界面,弹出的软键盘把登录或注册按钮挡住了,用户必须把软键盘收起,才能点击相应按钮,这样的用户体验非常不好。像微信则直接把登录按钮做在输入框的...
之前我们在使用vue进行 h5 表单录入的过程中,遇到了Android软键盘弹出,覆盖 h5页面 输入框 问题,在此进行回顾并分享给大家: 系统:Android 条件:当输入框在可视区底部或者偏下的位置 触发条件:输入框获取焦点,...
监听Android软键盘弹出和收起事件(所有代码都是抽离自facebook/react-native源码中, 亲测有效, 放心食用)。回调事件方法参数包含键盘是否弹出(isShow)、键盘高度(keyboardHeight)、屏幕可用高度(screenHeight)、屏幕...
网上搜到很多关于这方面的介绍,最流行的就是在压缩模式下通过监听onLayout()函数来实现的监听,这种方法可能不适合希望在软键盘弹出时控件平移而非压缩需求的开发者,因此,我们的需求就是在符合任意控件在软键盘...
UITextField和UITextView,前者是单行输入文本框,后者是可滑动的多行输入文本框,在这整个开发过程中,我们需要控制键盘的弹出和收起、在输入结束的时候获取输入的信息,此外,我们还需要保证在键盘弹起的时候不...
Unity3d UGUI 输入框调用软键盘工程源码(适用触屏一体机);适用windows系统。实测win10没问题。 建议先看说明:https://blog.csdn.net/qq_33789001/article/details/118940919
主要介绍了解决react-native软键盘弹出挡住输入框的问题,本文通过实例图文相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
使用html+css+js实现自定义弹出对话框/输入框,使用html+css+js实现自定义弹出对话框/输入框,使用html+css+js实现自定义弹出对话框/输入框
当输入框可能被软键盘压到时,在一部分安卓下却出了问题,华为自带浏览器和UC会有布局上的问题。 原因可能是因为,软键盘弹出时,改变了height,使height:100%,不能达到原来的高度。 解决办法: $(document).ready...
当键盘高度高于输入框的时候,界面向上拉 从而解决输入框遮挡问题
最简单的数字软键盘例子,包含QlineEdit弹出的部分,方便自己根据需要修改。比qt自带的例子inputpanel简单的多。
Android 底部控件随软键盘弹出而上移demo
解决聊天界面,软键盘和表情框切换问题,类似微信聊天界面,可以获取软键盘的高度,并解决输入框弹出时,listview显示最后一条消息。
android无软键盘弹出的EditText, 获取焦点也不会弹出.
近乎完美的监听软键盘的弹出与收起的