我是 iOS 开发新手。我想在 UITextView 外部点击时隐藏键盘。 我的 TextView 位于 UITableView 的单元格中。问题是我的顶部有一个工具栏,而我的按钮不再有反应。我实现了“shouldReceiveTouch”方法,但我认为我的测试不正确。有任何想法吗?谢谢你,对不起我的英语不好..
在我的 ViewDidLoad 中:
tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(dismissKeyboard)];
tap.delegate = self;
[self.view addGestureRecognizer:tap];
注意:tap 是一个 UITapGestureRecognizer 属性。
实现方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isKindOfClass:[UIBarButtonItem class]]) {
return NO;
}
return YES;
}
-(void)dismissKeyboard {
[tview resignFirstResponder];
}
最佳答案
UIBarButtonItem 不是 UIView 的子类,因此 shouldReceiveTouch 仍然返回 YES。
当您在 cellForRowAtIndexPath 中初始化单元格时,尝试排除整个 UIToolbar 或仅在 UITableViewCell 中添加点击手势识别器。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isKindOfClass:[UIToolbar class]]) {
return NO;
}
return YES;
}
关于IOS:在触摸 UITableView 时隐藏键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16963620/