弹出键盘[textField becomeFirstResponder];
隐藏键盘resignFirstResponder、endEditing
方式一.点击Return的时候隐藏键盘(需设置TextField的delegate)
1 2 3 4 5 - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder];//需指定文本框的代理 textField.delegate = self; return YES; }
方式二.点击view其他区域隐藏键盘
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 (void )touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [CSTextField resignFirstResponder]; for (UIView *subVie in self .view.subviews) { if ([subVie isKindOfClass:[UITextField class ]]) { [subVie resignFirstResponder]; } } [self .view endEditing:YES ]; [[[UIApplication sharedApplication] keyWindow] endEditing:YES ]; [[UIApplication sharedApplication] sendAction:@selector (resignFirstResponder) to:nil from:nil forEvent:nil ]; [[self .view viewWithTag:10001 ] resignFirstResponder]; }
1 2 3 4 5 - (void )scrollViewWillBeginDragging:(UIScrollView *)scrollView { [self .view endEditing:YES ]; }
关于UITextView隐藏键盘 思路基本和UITextField一样
1.方法一
1 2 3 4 5 6 7 [self .view endEditing:YES ]; OR [self .text endEditing:YES ]; [self .text resignFirstResponder];
2.方法二 (Return键隐藏)
1 2 3 4 5 6 7 8 9 10 11 -(BOOL )textView:(UITextView *)textView shouldChangeTextInRange:(NSRange )range replacementText:(NSString *)text { if ([text isEqualToString:@"\n" ]) { [textView resignFirstResponder]; return NO ; } return YES ; }
关于 UITableView如何隐藏键盘方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - (void)viewDidLoad { ... UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard:)]; gestureRecognizer.cancelsTouchesInView = NO; [self.tableView addGestureRecognizer:gestureRecognizer]; } - (void)hideKeyboard:(UIGestureRecognizer *)gestureRecognizer { CGPoint point = [gestureRecognizer locationInView:self.tableView]; NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point]; // Let say you are editing first section first row if (indexPath != nil && indexPath.section == 0 && indexPath.row == 0) { return; } [self.firstRowTextField resignFirstResponder]; }
StackflowDismiss keyboard by touching background of UITableView
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - (BOOL )findAndResignFirstResonder:(UIView *)stView { if (stView.isFirstResponder) { [stView resignFirstResponder]; return YES ; } for (UIView *subView in stView.subviews) { if ([self findAndResignFirstResonder:subView]) { return YES ; } } return NO ; } - (void )tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { ... [self findAndResignFirstResonder: self .view]; ... }