那些年走过的坑-自定义键盘弹出之后会自动收回

一,自定义键盘弹出之后会自动收回

项目准备封版了,测试突然反馈一个偶现bug,在程序进入支付界面,输入密码时,连续进入再退出,多次执行几次这个操作,会出现键盘弹出之后又自动收回去的现象,自己去测试也发现这个问题确实是存在的,需要手动点击textfiled才能重新调起支付键盘;

分析步骤:1.既然键盘有弹出,说明被调用为第一响应,之后收起,失去第一响应,猜测可能键盘响应的时机不对,等空间完全创建完毕之后再调用第一响应,放在viewdidAppear里面执行,bug依然存在; 又怀疑是上一次退出时,键盘没有调用regis方法,因此又在dealloc中主动调用regis方法,多次测试之后,偶尔还是会出现键盘回收的情况;谷歌收索,很遗憾没有收索到答案,后来问一个以前的同事,经过一番交流,一个全新的解决方案出来了;

1.同事提出的方法:  由于我那个支付控件是pop出来的,因此要等键盘完全收起之后再pop或者push。直接dispatch_after个0.25秒再执行pop或者push。因为系统键盘收起的duration就是0.25秒。

2.另外一个可行的方法: 我在pop操作时,不希望看到动画效果,因此animation设置的为NO,改用YES也可以消除这个bug; 如果项目要求不严,可以采用这个方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,954评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • 大学的恋爱一直让我向往,那似乎是我等待了许久的东西。可是,如今已经很开感觉好久了,还没有两个月却感觉是两个世纪一样...
    詹姆斯灵阅读 214评论 0 0
  • 前几天有一个同学和我抱怨现在的工作枯燥无聊,挣得又少。我觉得这很正常。她大学毕业以后因为找不到工作,几经犹...
    寞守橙妖阅读 448评论 0 1
  • 我的老婆是冰山总裁
    书AB阅读 258评论 0 0