项目开发中,我们在跟踪线上bugly时,经常会遇到【UICompatibilityInputViewController 】willappear时崩溃的问题(如下),但我们搜索整个项目后发现,其中没有这个控制器,那UICompatibilityInputViewController到底是什么呢?
其实他是我们弹起键盘的一部分。使用过自定义键盘的小伙伴肯定知道,需要对window下的UITextEffectsWindow进行操作,展开后层级如下:
具体层级是,下方箭头标记的是UITextEffectsWindow
再下一层是:UITextEffectsWindow上的UIInputWindowController
再下一层是:UIInputWindowController上的UIInputSetContainerView
在下一层是:UIInputSetContainerView上的UIIputSetHostView
再下一层便是我们要找的UIIputSetHostView上的UICompatibilityInputViewController
搞懂了视图层级位置,就知道问题出在哪了。