点击空白和任意控件收键盘,第一次用.swift
- (void)viewDidLoad { [super viewDidLoad]; [self setUpForDismissKeyboard]; } - (void)setUpForDismissKeyboard { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; UITapGestureRecognizer *singleTapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAnywhereToDismissKeyboard:)]; NSOperationQueue *mainQuene =[NSOperationQueue mainQueue]; __weak typeof(self) weakSelf = self; [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)tapAnywhereToDismissKeyboard:(UIGestureRecognizer *)gestureRecognizer{ //此method会将self.view里全部的subview的first responder都resign掉 [self.view endEditing:YES]; } //4月5日修改 -(void)viewWillDisappear:(BOOL)animated { //观察者回收,否则dealloc会出错 [super viewWillDisappear:animated]; [[NSNotificationCenter defaultCenter]removeObserver:self]; }
4月5日更新修改,实际使用过程当中发现block里self此处须要__weak修饰.app
须要回收观察者,否则dealloc会出错.ide
本文转帖,来源已注明.code