首页 > 其他 > 详细

在baseViewController 里边 隐藏键盘的操作

时间:2017-02-21 11:50:25      阅读:203      评论:0      收藏:0      [点我收藏+]

- (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;

}

 

 

在baseViewController 里边 隐藏键盘的操作

原文:http://www.cnblogs.com/yecong/p/6423263.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!