UISearchDisplayController CGContext Ошибка iOS 7
Я использую UISearchDisplayController в моем приложении. Так как в iOS 7 возникает странная ошибка, при нажатии кнопки searchBar и отображаемой клавиатуры приложение выдает несколько ошибок, если пользователь решит снова щелкнуть панель поиска, пока поле searchField пусто.
Ошибка обсуждается в этой теме: UISearchBar CGContext ERROR
Теперь у меня есть 2 вопроса: есть ли способ решить эту проблему? А если нет, можете ли вы загрузить приложение в App Store с этим багом в системе?
С уважением
Мой код:
- (void)viewDidLoad
{
[super viewDidLoad];
if ([self systemVersionGreaterThanOrEqualTo:@"7.0"])
{
[[UISearchBar appearance]setSearchFieldBackgroundImage:[UIImage imageNamed:@"searchbar_bg"] forState:UIControlStateNormal];
self.navigationItem.titleView = searchBar;
}
}
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
[self.searchDisplayController setActive:YES animated:NO];
// Hand over control to UISearchDisplayController during the search
// searchBar.delegate = (id <UISearchBarDelegate>)self.searchDisplayController;
return YES;
}
- (void) searchDisplayControllerDidBeginSearch:(UISearchDisplayController
*)controller {
// Un-hide the navigation bar that UISearchDisplayController hid
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
- (void) searchDisplayControllerWillEndSearch:(UISearchDisplayController
*)controller {
searchBar = (UISearchBar *)self.navigationItem.titleView;
// Manually resign search mode
[searchBar resignFirstResponder];
// Take back control of the search bar
searchBar.delegate = self;
}
2 ответа
Вы можете опубликовать свое приложение с этой ошибкой, потому что оно не приводит к сбою приложения и является ошибкой платформы. Не пытайтесь это исправить, потому что вы пытаетесь исправить то, что не повредит вашему приложению.
Кроме того, поскольку отчеты об ошибках уже были поданы по этому поводу, вы можете быть уверены, что проблема будет решена в ближайшее время.
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller
shouldReloadTableForSearchString:(NSString *)searchString{
}
и установить кадр, если он больше, чем iOS7
и я не вижу, чтобы ты использовал это
- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)
controller {
[self.searchDisplayController.searchResultsTableView setDelegate:self];
}