W aplikacji, która ma działać na iOS 6 i iOS 7, przycisk anulowania paska wyszukiwania osadzonego na pasku nawigacji nie jest już wyświetlany, jeśli aplikacja działa na iOS 7. na iOS 6 działa.iOS 7 nie pokazuje przycisku anulowania paska wyszukiwania w pasku nawigacji
Pasek wyszukiwania jest w widoku tytułowym pasku nawigacyjnym i przycisk anulować powinny być dostępne, jeśli pasek wyszukiwania staje się pierwszym responder:
iOS 7
iOS 6
w izolowanym testowym przypadku kod jest bardzo prosty:
@interface MyViewController : UITableViewController<UISearchBarDelegate>
@property (nonatomic) IBOutlet UISearchBar* searchBar;
@end
@implementation MyViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.titleView = self.searchBar;
}
- (void) searchBarTextDidBeginEditing: (UISearchBar*) searchBar {
[searchBar setShowsCancelButton: YES animated: YES];
}
@end
Czy jest to celowe zmiany w iOS 7, że brakowało mi w dokumentacji? Jeśli tak, to co ma być alternatywą?
Jeśli nie, czy popełniłem błąd w moim kodzie?
Czy ustawiłeś delegata dla UISearchBar? – ppaulojr
Tak, ustawiłem delegata w konstruktorze interfejsów i 'searchBarTextDidBeginEditing:' jest wywoływany zgodnie z oczekiwaniami. W przeciwnym razie nie działałoby na iOS 6. – Codo