iOS UIRemoteKeyboardWindow

2020-07-07  本文已影响0人  天空中的球

在我们弹出 UIActivityViewController 后 最外层 window 默认成 了UIRemoteKeyboardWindow, 从而导致了一些问题,在此记录下。

了解: 在 iOS9 之前,键应用程序窗口顶部的第二个UIWindow(窗口级别高于UIWindowLevelNormal)覆盖了包括键盘在内的所有窗口。视图层次结构显示键盘在 UITextEffectsWindow 中。
但是,iOS9 中的键盘位于另一个窗口 UIRemoteKeyboardWindow 中,该窗口位于所有其他窗口的顶部。在键盘上方设置自定义 UIWindow 似乎并不简单。一种解决方案是在显示/隐藏自定义窗口时手动关闭/显示键盘。

一、UIRemoteKeyboardWindow 出现的时机
UIRemoteKeyboardWindow

PS: 有小伙伴说UIAlertController 弹出时也出现这个window,我测试了好几个版本也没发现。

二、UIRemoteKeyboardWindow 可能产生的问题
[UIApplication sharedApplication].windows

所以此处要针对其作出相应的判断

PS: UIWindow

UIKIT_EXTERN const UIWindowLevel UIWindowLevelNormal; // 0
UIKIT_EXTERN const UIWindowLevel UIWindowLevelAlert; // 2000
UIKIT_EXTERN const UIWindowLevel UIWindowLevelStatusBar; // 1000

而 UIRemoteKeyboardWindow 是在更上层的。

相应解决方法
上一篇下一篇

猜你喜欢

热点阅读