Возникла эта проблема при использовании UISearchBar
с UISearchController
.Я использую свою собственную кнопку отмены, так как кнопка отмены не отображалась на iPad с showsCancelButton = YES
, теперь она не будет скрываться на iPhone с showsCancelButton = NO
!
.Следующее сработало для меня.
Установите делегат и начальное значение:
- (void)viewDidLoad
{
// ...
self.searchController.searchBar.showsCancelButton = NO;
self.searchController.searchBar.delegate = self;
}
Сброс showsCancelButton
до NO
0,1 с после начала редактирования текстовой панели.
#pragma mark - UISearchBarDelegate
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
self.searchController.searchBar.showsCancelButton = NO;
});
}