UISearchBar в UIPopoverController не получает первого респондента
Когда пользователь нажимает кнопку панели поиска, появляется всплывающее окно с панелью поиска. Я загружаю представление результатов поиска из пера, который содержит только табличное представление. Теперь я хочу, чтобы панель поиска становилась выделенной, когда появляется всплывающее окно, однако панель поиска не получает первого респондента. Я попытался установить его в didPresentSearchController:
метод делегата, но это тоже не работает. Ниже приведен код, который я пробовал.
- (IBAction)search:(id)sender {
self.searchView = [[[NSBundle mainBundle] loadNibNamed:@"Popover" owner:self options:nil] objectAtIndex:0];
self.searchController = [[UISearchController alloc] initWithSearchResultsController:self.searchView];
self.searchController.searchBar.scopeButtonTitles = @[@"BLARGH", @"WARGH"];
self.searchController.searchBar.selectedScopeButtonIndex = 1;
self.searchController.searchBar.delegate = self;
self.searchController.delegate = self;
self.table.delegate = self;
self.table.dataSource = self;
self.table.tableHeaderView = self.searchController.searchBar;
self.popover = [[UIPopoverController alloc] initWithContentViewController:self.searchView];
[self.popover setPopoverContentSize:CGSizeMake(320, 88)];
self.popover.delegate = self;
[self.popover presentPopoverFromBarButtonItem:self.searchButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[self.searchController.searchBar becomeFirstResponder];
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
[self.popover setPopoverContentSize:CGSizeMake(320, 600)];
self.table.frame = CGRectMake(0, 0, 320, 600);
NSLog(@"Me pressed");
}
1 ответ
Я думаю, что это помогает вам использовать этот делегат, а также проверить.xib или раскадровку вы подключили делегат панели поиска или нет
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
}