Панель UISearchBar в UINavigationController с кнопкой отмены не выбирается

#objective-c #ios #uinavigationcontroller #focus #uisearchbar

#objective-c #iOS #uinavigationcontroller #фокус #панель поиска пользовательского интерфейса

Вопрос:

Я добавил панель UISearchBar в UINavigationController просто отлично, но как только я добавляю кнопку отмены в панель поиска, я больше не могу выбирать ее, касаясь ее.

Код, который я использую для создания панели поиска и ее добавления,:

 UISearchBar *theSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0f,0.0f,320.0f,0.0f)];
theSearchBar.delegate = self;
[theSearchBar setPlaceholder:@"Search iPad"];
[theSearchBar setShowsCancelButton:YES animated:YES];
self.navigationItem.titleView = theSearchBar;
self.navigationItem.titleView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[theSearchBar release];
  

Если я удалю строку для добавления кнопки отмены, я смогу сосредоточиться на строке поиска, и поиск будет работать правильно. Как только я ввожу эту строку, она отображается правильно, но я больше не могу сосредоточиться на ней.

Я попытался поместить его в простой контейнер UIView, но это тоже не решило проблему.

Как насчет добавления кнопки отмены может привести к сбою?

ОБНОВЛЕНИЕ: в итоге я не использовал кнопку отмены, потому что решил, что в использовании панели поиска нет необходимости.

Ответ №1:

Я бы определенно рекомендовал UISearchDisplayController: документы Apple.В него встроена кнопка отмены, и, поместив ее в interface builder, вы можете сэкономить много кода. Меньше кода = меньше ошибок.