Проблема с вашим решением заключается в том, что код предполагает, что objectAtIndex: 3 является кнопкой отмены. Это не только генерирует предупреждение компилятора, но также, если вы отображаете кнопку «Отмена» программно (например, используя [searchBar setShowsCancelButton:YES]
, вы рискуете аварийно завершить работу приложения.
Более простое решение - установить стиль всей панели поиска в ViewDidLoad (), используя:
searchBar.tintColor = [UIColor colorWithWhite:0.3 alpha:1.0];
это переопределяет стиль, установленный в Интерфейсном Разработчике, НО также меняет цвет кнопки «Отмена» на тот же цвет, что и вся строка (хотя, к сожалению, он не позволяет независимо устанавливать стиль кнопки «Отмена».