ios 键盘在弹出后无法点击
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios 键盘在弹出后无法点击相关的知识,希望对你有一定的参考价值。
TextField的window属性已经检测出不为nil,并且TextField是当前视图的第一响应者,但是在键盘弹出后点击任何键盘上的字符都不响应,xcode的模拟器,真机都测试过,均出现此问题,求助
参考技术A 最常用的方法就是通过触摸事件来控制键盘的隐藏,代码如下:-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
[textFiled resignFirstResponder];
或者自定义触摸手势来控制键盘的隐藏,代码如下:
- (void)viewDidLoad
[super viewDidLoad];
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide:)];
//设置成NO表示当前控件响应后会传播到其他控件上,默认为YES。
tapGestureRecognizer.cancelsTouchesInView = NO;
//将触摸事件添加到当前view
[self.view addGestureRecognizer:tapGestureRecognizer];
-(void)keyboardHide:(UITapGestureRecognizer*)tap
[textFiled resignFirstResponder];
追问
并不是无法收回键盘,而是键盘弹出后无法输入,例如登录页面,点击登录名的输入框,弹出键盘,此时无法输入登录名,但是在这个情况下点击密码输入框,键盘就可以输入了,所以并不是您理解的键盘无法收回
解决移动端键盘弹出后,遮挡住表单的问题
监听resize事件,然后定位到input、textarea输入框,也可以理解为监听input或者textarea状态,当屏幕滚动到input或者textarea,上下居中。就可以解决键盘遮挡表单的问题了
window.addEventListener('resize', () =>
if(document.activeElement.tagName === 'INPUT' ||
document.activeElement.tagName === 'TEXTAREA')
window.setTimeout(() =>
document.activeElement.scrollIntoViewIfNeeded();
, 0);
);
以上是关于ios 键盘在弹出后无法点击的主要内容,如果未能解决你的问题,请参考以下文章