前言
当键盘和弹框同时存在的时候,如图,如果不做处理,键盘总是会处在窗口的最前端,遮盖住弹框。与实际想要的结果:弹窗置于键盘之上不符。上家公司遇到这种情况时,就简单的说了句无法实现,应付了事(主要是比较烦感不做作的产品每次修改需求从来就是用户体验不好 😳,鬼知道没有进行调研的用户体验到底是神马)。今天又遇到了这种情况,秉着对公司负责也对自己负责的态度,查看了应用下的 window 操作。
出现键盘置于弹框之上的原因
- 系统键盘所在的 window 优先级是最高的,(了解到这,如果你单纯的以为,修改弹窗的 windowLevel == MAXFLOAT 就能解决问题。。。。。。哈哈,孩子,你还是太年轻啦~~~ )
- 经打印,得知:iOS 9 之前,键盘是置于 UITextEffectsWindow 上的;iOS 9 之后,在 UIRemoteKeyboardWindow 上
-
下图是跑在 Xcode 8.3.3,模拟器 版本 iOS 10.3 上的结果
结论
在需要的时机,将弹框加到键盘的 window 上即可。如图展示