关于键盘弹出时遮盖页面显示的解决方案
2012-11-19 10:40
351 查看
在看asihttprequest代码时候,无意发现了关于键盘弹出时遮盖页面显示的解决方案,
解决方法如下:
在viewload方法里面注册监听键盘弹出和hide
[[self
view] setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth];
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
然后在keyboardWillShow修改页面的大小- 键盘的高度
- (void)keyboardWillShow:(NSNotification *)notification
{
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_2
NSValue *keyboardBoundsValue = [[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey];
#else
NSValue *keyboardBoundsValue = [[notification
userInfo] objectForKey:UIKeyboardBoundsUserInfoKey];
#endif
CGRect keyboardBounds;
[keyboardBoundsValue getValue:&keyboardBounds];
UIEdgeInsets e =
UIEdgeInsetsMake(0, 0, keyboardBounds.size.height-42,
0);
[[self
tableView] setScrollIndicatorInsets:e];
[[self
tableView] setContentInset:e];
}
恢复正常页面
- (void)keyboardWillHide:(NSNotification *)notification
{
UIEdgeInsets e =
UIEdgeInsetsMake(0,
0, 0,
0);
[[self
tableView] setScrollIndicatorInsets:e];
[[self
tableView] setContentInset:e];
}
解决方法如下:
在viewload方法里面注册监听键盘弹出和hide
[[self
view] setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth];
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
然后在keyboardWillShow修改页面的大小- 键盘的高度
- (void)keyboardWillShow:(NSNotification *)notification
{
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_2
NSValue *keyboardBoundsValue = [[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey];
#else
NSValue *keyboardBoundsValue = [[notification
userInfo] objectForKey:UIKeyboardBoundsUserInfoKey];
#endif
CGRect keyboardBounds;
[keyboardBoundsValue getValue:&keyboardBounds];
UIEdgeInsets e =
UIEdgeInsetsMake(0, 0, keyboardBounds.size.height-42,
0);
[[self
tableView] setScrollIndicatorInsets:e];
[[self
tableView] setContentInset:e];
}
恢复正常页面
- (void)keyboardWillHide:(NSNotification *)notification
{
UIEdgeInsets e =
UIEdgeInsetsMake(0,
0, 0,
0);
[[self
tableView] setScrollIndicatorInsets:e];
[[self
tableView] setContentInset:e];
}
相关文章推荐
- 关于listView下方软键盘弹出,listView无法压缩显示的问题解决方案
- Android 关于弹出键盘问题的几种情况和解决方案
- 关于html页面移动端软键盘弹出时影响页面布局的问题
- iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案—scrollIntoView()
- MUI - iphone页面在弹出键盘时popPicker,dtPicker自动弹出来的解决方案
- 【硬件】关于显示器自动弹出显示菜单的解决方案
- 1怎样让输入的text文本填写的部分只添加数字、2怎样将输入的数字一次性全部删除 3怎样选择密码 让它不显示 4 怎样实现在没有return的情况下点击button的情况下就能够使键盘页面下落5 怎样实现点击指定的button来对使指定的text进行键盘弹出 6怎样改变button按钮的状态
- 关于showmodaldialog 打开新窗口后提交表单操作时,避免弹出新窗口和避免从后台获取“新数据”后不能刷新当前模态页面的解决方案
- 解决方案:silverlight嵌入到aspx页面中后,该页面中弹出层被silverlight所在的层遮盖了
- iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案
- frame框架top页面单击按钮显示弹出div的解决方案
- 微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法(转)
- 关于UITextfield弹出键盘解决方案
- JS关于jsp页面弹出框传值并显示
- 微信页面弹出键盘后iframe内容变空白的解决方案
- iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案—scrollIntoView()
- iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案
- 关于Xcode6模拟器 键盘不显示和没有中文输入法的解决方案
- android隐藏以及显示软键盘以及不自动弹出键盘的方法
- 关于MyEclipse中html(jsp)页面中文显示乱码的疑问