在baseViewController 里边 隐藏键盘的操作

- (void)j_tapDismissKeyboard

{

    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];

    

    UITapGestureRecognizer *singleTapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(j_tapAnywhereToDismissKeyboard:)];

    

    __weak UIViewController *weakSelf = self;

    

    NSOperationQueue *mainQuene =[NSOperationQueue mainQueue];

    

    [nc addObserverForName:UIKeyboardWillShowNotification object:nil queue:mainQuene usingBlock:^(NSNotification *note) {

        

        [weakSelf.view addGestureRecognizer:singleTapGR];

    }];

    

    [nc addObserverForName:UIKeyboardWillHideNotification object:nil queue:mainQuene usingBlock:^(NSNotification *note) {

        

        [weakSelf.view removeGestureRecognizer:singleTapGR];

    }];

}

 

 

- (void)j_tapAnywhereToDismissKeyboard:(UIGestureRecognizer *)gestureRecognizer

{

    [self.view endEditing:YES];

}

 

 

 

 

 

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;

}

 

 

posted on 2017-02-21 11:25  举个例子yi聪聪  阅读(157)  评论(0编辑  收藏  举报

导航