美文网首页
iOS 代码收键盘(保持编辑状态)

iOS 代码收键盘(保持编辑状态)

作者: _牙牙 | 来源:发表于2020-01-06 11:30 被阅读0次

    故事:

    公司一个项目,是iOS原生加载web的结构。最近有一个需求,就是需要用js能控制oc,点击web上的输入框,主动收起系统键盘,并且保持输入框光标,保持编辑状态,以便外接刷卡器能够正常输入值。(尼玛,这是什么鬼需求😓)

    一开始,我的做法是,在oc上暴漏一个收键盘方法给js调用,但是oc里收键盘的常规方式是结束页面上的编辑状态,达不到既定要求,这个让我很烦躁啊。研究了好久,发现键盘是加载在一个单独的window下的。然后尝试隐藏这个window,解决问题,写下来记录一下。方法如下

             NSArray *array = [[UIApplication sharedApplication] windows];
             NSLog(@"%lu",(unsigned long)array.count);
             //获取最顶层的window,一定是键盘所处的window,让这个window做hidden,和alpha为0.
             //只做hidden无效果,只做alpha有一个渐变。两者一起完美解决
             UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] lastObject];
             if ([tempWindow isKindOfClass:NSClassFromString(@"UIRemoteKeyboardWindow")]) {
                  [tempWindow setAlpha:0];
                  tempWindow.hidden = YES;   
             }
    
    

    相关文章

      网友评论

          本文标题:iOS 代码收键盘(保持编辑状态)

          本文链接:https://www.haomeiwen.com/subject/rcohactx.html