UITextField внешний вид не работает в UISearchBar - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь установить цвет фона для текстового поля внутри панели поиска. Сначала я сделал это:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]].backgroundColor = [UIColor blueColor];

    return YES;
}

и это не работает. Цвет остается белым. Хорошо. Я получил его, вызвав этот код:

UISearchBar* searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 150, 44)];

self.tableView.tableHeaderView = searchBar;

[UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]].backgroundColor = [UIColor blueColor];

из viewDidLoad. Но это работает только один раз. При открытии другого контроллера вида этого класса цвет фона остается неизменным.

Вы можете попробовать это сами. Просто создайте простое шаблонное приложение для iOS и добавьте UISearchBar. Затем попробуйте установить цвет фона для его текстового поля с помощью UIAppearance.

Что не так? Это ошибка iOS? Я знаю, что могу пройтись по всем подпредставлениям панели поиска, найти UITextField и установить цвет фона, но я хочу выяснить, что происходит.

...