Google 및 Stackoverflow에서 수 시간 동안 검색했지만 시도했지만 운이 없었습니다.UITapGestureRecognizer에서 didSelectRowAtIndexPath 메서드를 호출하는 방법은 무엇입니까?
위의 UITableView tblDepartment
과 위의 UISearchBar studentSearch
이 있습니다.
나는 사용자가 검색 상자 외부를 눌러 때 studentSearch
텍스트 상자에서 키보드를 기각 할 UITapGestureRecognizer
를 추가 : 나는 tblDepartment
에 행을 선택할 때
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[self.tblDepartment addGestureRecognizer:gestureRecognizer];
- (void)hideKeyboard
{
[studentSearch resignFirstResponder];
}
그 후, 방법 didSelectRowAtIndexPath:(NSIndexPath *)indexPath
더 이상 호출되지 않습니다. 나는 gestureRecognizer
이 이유 인 것을 안다.
키보드를 숨기고 사용자가 행을 선택하도록 허용하려면 어떻게해야합니까?
는이 코드를 시도했지만 작동하지 않았다 : , 그것은 기본적으로 YES NO의 제스처 인식기 cancelsTouchesInView 속성- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isDescendantOfView:tblDepartment]) {
return NO;
}
return YES;
}
제스처 인식기를 제거하고 대신 'tableView : didSelectRowAtIndexPath :'에서 첫 번째 응답을 종료 할 수 있습니까? – dasblinkenlight
'resignFirstResponder' 후 제스처 인식기를 제거해보십시오. – ohr
@ dasblinkenlight : 의견을 주셔서 감사합니다. 'tblDepartment'는 약 7 개의 행을 가지며 표시 할 때 키보드가 겹칩니다. 사용자가 검색하고 싶지 않으면 행을 선택할 수 있기를 바랍니다. :) 그래서 검색 상자 바깥을 탭하면 키보드가 닫히고 하단 행을 선택할 수 있습니다. –