一、问题描述
成都创新互联专注于企业营销型网站、网站重做改版、萨迦网站定制设计、自适应品牌网站建设、H5建站、商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为萨迦等各大城市提供网站开发制作服务。
对于 ios 系统,输入框输入内容,软键盘弹出,页面内容整体上移,但是软键盘收起,页面内容不会自动回到原本的位置,必须手动下拉才会恢复
刚开始遇到的时候,心想真是什么鬼畜问题都有,这边直接给出解决办法了
二、解决方式
首先在你们函数工具文件中加上下面的函数
在具体的文件中使用方式如下:
checkValue() 函数
至此, 关于 ios 软键盘整出的鸡肋问题就解决啦
现象描述:
ios平台,app内嵌h5,当软键盘弹出再收起时,页面布局是错乱的。直接表现是当点击其他元素时,却导致了某个文本框聚焦。
解决方案:文本框focus(聚焦)时软键盘弹出,blur(失焦)时软键盘收起。可监听文本框失焦得知软键盘收起,在文本框失焦时将页面滚动距离置为0,即可解决这一问题:
UITextField
*textfield常用的取消键盘方法.1、在textfield所在的控制器中,实现UITextFieldDelegate的方法。textfield.delegate
=
self;-
(BOOL)textFieldShouldReturn:(UITextField
*)textField{
[textfield
resignFirstResponder];
return
YES;}这样,在点击键盘的return键时,就会退出键盘。[textfield
resignFirstResponder];表示textfield放弃第一响应者,键盘自然就退出了。2、假设有UIView
*someView
是textfield的父视图(不管中间是否还包含其他层的父视图),那么,只要设置[someView
endEditting:YES];那么,所有在someView上的textfield,或者textView都会结束编辑,键盘也会自动退出。以上就是常用的两种退出键盘方法。IOS软件开发,UITextField怎么取消弹出系统键盘?
监听当键盘将要出现时
OC版
[[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(keyboardWillShow:)name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(keyboardWillHide:)name:UIKeyboardWillHideNotification object:nil];
- ( void )keyboardWillShow:(NSNotification *)notification
{
// //获取键盘的高度
// NSDictionary *userInfo = [notification userInfo];
// NSValue *value = [userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey];
// CGRect keyboardRect = [value CGRectValue];
// int height = keyboardRect.size.height;
CGFloatcurkeyBoardHeight = [[[notificationuserInfo]objectForKey:@"UIKeyboardBoundsUserInfoKey"]CGRectValue].size.height;
CGRectbegin = [[[notificationuserInfo]objectForKey:@"UIKeyboardFrameBeginUserInfoKey"]CGRectValue];
CGRectend = [[[notificationuserInfo]objectForKey:@"UIKeyboardFrameEndUserInfoKey"]CGRectValue];
// 第三方键盘回调三次问题,监听仅执行最后一次
if (begin.size.height0 (begin.origin.y-end.origin.y0)){
CGFloatkeyBoardHeight = curkeyBoardHeight;
NSLog(@"第三次:%f",keyBoardHeight);
[UIView animateWithDuration:0.05 animations:^{
self .countLb_bottomH.constant= keyBoardHeight+10*sizeScale;
}];
}
}
- ( void )keyboardWillHide:(NSNotification*)notificationswift版
{
//获取键盘的高度
NSDictionary*userInfo = [notificationuserInfo];
NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRectkeyboardRect = [valueCGRectValue];
int height = keyboardRect.size.height;
self .countLb_bottomH.constant = 12*sizeScale;
}
NotificationCenter.default.addObserver(self,selector:#selector(keyBoardShow(noty:)),name:Notification.Name.UIKeyboardWillShow,object:nil)
NotificationCenter.default.addObserver(self,selector:#selector(keyBoardHidden(noty:)),name:Notification.Name.UIKeyboardWillHide,object:nil)
@objcfunckeyBoardShow(noty:Notification){guardletuserInfo=noty.userInfoelse{return}letvalue=userInfo["UIKeyboardFrameBeginUserInfoKey"]as!NSValueletkeyboardRect=value.cgRectValueletkeyboradHeight=keyboardRect.size.height}
@objcfunckeyBoardShow(noty:Notification){guardletuserInfo=noty.userInfoelse{return}letvalue=userInfo["UIKeyboardFrameEndUserInfoKey"]as!NSValueletkeyboardRect=value.cgRectValueletkeyboradHeight=keyboardRect.size.height}
参考: