iOS实现全局关闭所有键盘,actionSheet和alertView

1、关闭所有actionSheet和alertView:


- (void)closeModalView  {

       for(UIWindow* window in [UIApplication sharedApplication].Windows)    {

            for(UIView* view in window.subviews)        {          

              [self dismissActionSheetAndAletrtViewInView:view];      

            }

      }

}

- (void)dismissActionSheetAndAletrtViewInView:(UIView*)view {

         if ([view isKindOfClass:[UIActionSheet class]])  {

             UIActionSheet *actionView = (UIActionSheet *)view;

             [actionView dismissWithClickedButtonIndex:actionView.cancelButtonIndex                      animated:NO];

      }

        else if ([view isKindOfClass:[UIAlertView class]]) {

             UIAlertView *alertView = (UIAlertView *)view;

           [alertView dismissWithClickedButtonIndex:alertView.cancelButtonIndex                            animated:NO];

       }

       else  {

            for (UIView* subView in view.subviews) {

                [self dismissActionSheetAndAletrtViewInView:subView];

             }

        }

}

2、隐藏所有键盘:


- (void)hideKeyBoard {

           for (UIWindow* window in [UIApplication sharedApplication].windows) {

                 for (UIView* view in window.subviews) {

                         [self dismissAllKeyBoardInView:view];

                }

          }

}

-(BOOL) dismissAllKeyBoardInView:(UIView *)view {

            if([view isFirstResponder]) {

                  [view resignFirstResponder];

                  return YES;

            }

           for(UIView *subView in view.subviews) {

                if([self dismissAllKeyBoardInView:subView]) {

                    return YES;

             }

     }

     return NO;

}

你可能感兴趣的:(iOS实现全局关闭所有键盘,actionSheet和alertView)