@@ -693,20 +693,15 @@ - (void)setQmui_layoutSubviewsBlock:(void (^)(__kindof UIView * _Nonnull))qmui_l
693693 objc_setAssociatedObject (self, &kAssociatedObjectKey_layoutSubviewsBlock , qmui_layoutSubviewsBlock, OBJC_ASSOCIATION_COPY_NONATOMIC );
694694 Class viewClass = self.class ;
695695 [QMUIHelper executeBlock: ^{
696- if (@available (iOS 14.0 , *)) {
697- if (@available (iOS 15.0 , *)) {
698- } else {
699- // iOS 14 iPad 悬浮键盘,项目里 hook 了 -[UIView layoutSubviews] 的同时为输入框设置 inputAccessoryView,则输入框聚焦时会触发系统布局死循环
700- // 实测只有 iOS 14 有这种问题,iOS 13、15 都没事
701- // https://github.com/Tencent/QMUI_iOS/issues/1247
702- // https://km.woa.com/group/24897/articles/show/456340
703- if (viewClass == UIView.class ) {
704- IMP layoutSubviewsIMPForUIKit = class_getMethodImplementation (UIView.class , @selector (layoutSubviews ));
705- SEL layoutSubviewSEL = @selector (layoutSubviews );
706- const char * typeEncoding = method_getTypeEncoding (class_getInstanceMethod (UIView.class , layoutSubviewSEL));
707- class_addMethod (NSClassFromString (@" UIInputSetHostView" ), layoutSubviewSEL, layoutSubviewsIMPForUIKit, typeEncoding);
708- }
709- }
696+ // iOS 14 iPad 悬浮键盘,项目里 hook 了 -[UIView layoutSubviews] 的同时为输入框设置 inputAccessoryView,则输入框聚焦时会触发系统布局死循环
697+ // 实测只有 iOS 14 有这种问题,iOS 13、15 都没事
698+ // https://github.com/Tencent/QMUI_iOS/issues/1247
699+ // https://km.woa.com/group/24897/articles/show/456340
700+ if (IOS_VERSION >= 14.0 && IOS_VERSION < 15.0 && IS_IPAD && viewClass == UIView.class )
701+ IMP layoutSubviewsIMPForUIKit = class_getMethodImplementation (UIView.class , @selector (layoutSubviews ));
702+ SEL layoutSubviewSEL = @selector (layoutSubviews );
703+ const char * typeEncoding = method_getTypeEncoding (class_getInstanceMethod (UIView.class , layoutSubviewSEL));
704+ class_addMethod (NSClassFromString (@" UIInputSetHostView" ), layoutSubviewSEL, layoutSubviewsIMPForUIKit, typeEncoding);
710705 }
711706 ExtendImplementationOfVoidMethodWithoutArguments (viewClass, @selector (layoutSubviews ), ^(__kindof UIView *selfObject) {
712707 if (selfObject.qmui_layoutSubviewsBlock && [selfObject isMemberOfClass: viewClass]) {
0 commit comments