gpt4 book ai didi

objective-c - 键盘关闭和 UITableView 触摸问题

转载 作者:行者123 更新时间:2023-11-28 20:28:42 25 4
gpt4 key购买 nike

所以我有这个包含几行的 UITableView,当单击一行时,另一个 UIViewController 会被推送,其中包含特定行的详细信息。我的问题是我想在屏幕上(也在 UITableView)上进行任何触摸时关闭键盘,但是当我这样做并单击 UITableView 行时,键盘关闭,但 didSelectRow 方法不起作用。单击单元格后,它不会推送新的 ViewController

反之亦然,一旦我更改它,您可以单击 TableView 单元格,关闭键盘并按下另一个 ViewController,但触摸任何其他地方都不会关闭键盘。

我该怎么办?

- (IBAction)hideKeyboard:(id)sender
{
[tfFoodsSearchQuery resignFirstResponder];
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

if ([touch.view isKindOfClass:[UITableView class]])
{
// we touched a button, slider, or other UIControl
return YES; // handle the touch
}
NSLog(@"Touch");
return NO; // ignore the touch
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(hideKeyboard:)];

[self.view addGestureRecognizer:tap];

UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard:)];
gestureRecognizer.delegate = self;
[self.tvFoods addGestureRecognizer:gestureRecognizer];
}

谢谢!

最佳答案

设置

[gestureRecognizer setCancelsTouchesInView:NO];

而不是将其添加到 tvFoods,而是添加到整个 self.view,因此它不会影响覆盖的定义。

此外,删除 shouldReceiveTouch 委托(delegate),这是没有必要的

关于objective-c - 键盘关闭和 UITableView 触摸问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com