UISearchBar cancel button color?

前端 未结 11 637
耶瑟儿~
耶瑟儿~ 2020-12-13 09:00

When I drop a UISearchBar into my view inside Interface Builder, and change its style to Black Opaque, the cancel button stays unfittingly blue / gray and doesn\'t become bl

11条回答
  •  我在风中等你
    2020-12-13 09:35

    Came up with a following solution and it is working on iOS 13.0 and iOS 12.4 as well, must be working on prior versions to till iOS 9.0. The following solution is for:

    1. Cancel Button Color (Normal State).
    2. Cancel Button Color (Disabled State).
    3. Search Bar Text Field Background Color (Normal State).

    For Objective C:

    [[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setTintColor:[UIColor whiteColor]]; 
    
    [[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]} forState:UIControlStateNormal];
    
    [[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]} forState:UIControlStateDisabled];
    
    [[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setTitleTextAttributes:@{NSBackgroundColorAttributeName: [UIColor whiteColor]} forState:UIControlStateNormal];
    

    The above code also fixed my UI issues for iOS 13 and iPhone X. I included this code in my AppDelegate.m class in didFinishLaunchingWithOptions function, so that the changes could be done in the whole app.

提交回复
热议问题