所以我有這個UITableView
包含幾行,當單擊一行時,另一個UIViewController
被推送與特定的行詳細信息。我的問題是我想通過屏幕上的任何觸摸來關閉鍵盤(同樣在UITableView
上),但是當我這樣做時,點擊UITableView
行,鍵盤會關閉,但didSelectRow
方法不起作用。一旦點擊單元格,它不會推動新的ViewController
。另一種方式是,一旦我改變了它,你可以點擊TableView單元格,鍵盤消除和其他ViewController被按下,但是在任何其他地方的觸摸並不會關閉鍵盤。鍵盤關閉和UITableView觸摸問題
我該怎麼辦?
- (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];
}
謝謝!
嘗試在'touchesBegan'方法中使用鍵盤而不是使用輕敲識別器。 – vishy