我们在开发的时候,有需要把一个view显示到window,又不想被键盘的window所遮挡。在iOS11之前的系统中,我们是这么添加:
1 | [[[UIApplication sharedApplication].windows lastObject] addSubview:view]; |
但是iOS11中出现了一个新的特性,键盘的window一旦在App中被调起后就不会再被remove,而是hidden状态,这时候我们的view就会被添加到一个隐藏的window上面导致,直接导致无法正常显示。
我们项目中使用了Toast这个第三方库,所以需要对其做一些封装,核心代码如下所示(已适配iOS11系统):
1 | + (void)showMessageToWindowCenter:(NSString *)msg { |
目前还有一种情况没有处理(没有大碍):Toast先弹出来,然后再调起键盘,这个时候键盘还是会把已出现的Toast挡住。