2013-04-29 2 views
2

Я хочу изменить цвет клавиатуры на черный, когда пользователь вступает в текстовое поле поиска.Изменение цвета клавиатуры в UISearchBar с использованием

Я пытался добиться этого с UITextField *textField = [UITextField appearance]; [textField setKeyboardAppearance:UIKeyboardAppearanceAlert];

но моя сборка не может с этим сообщением

, истекающее приложением из-за неперехваченное исключение 'NSInvalidArgumentException', причина: «- [UISearchBarTextField _UIAppearance_setKeyboardAppearance]: непризнанный селектор, отправленный в пример 0x8485260 '

Пожалуйста, помогите мне с этим? Большое спасибо

ответ

4

использовать этот код ...

for(UIView *searchTextfield in yourSearchBar.subviews) 
    { 
     if([searchTextfield isKindOfClass: [UITextField class]]){ 
      [(UITextField *)searchTextfield setKeyboardAppearance: UIKeyboardAppearanceAlert]; 
     } 
    } 

его же, как мой другой ответ, в котором я заменить увидеть кнопку Изображение .. image-for-cancel-button-of-uisearchbar

+1

Спасибо за ответ, вы сделали мой день :). –

1

Upvote ответить PARAS Джоши, а обновление для iOS7/8. Теперь UIView завернут в еще один слой, поэтому вы захотите повторить итерацию.

for(UIView *searchTextfield in self.searchBar.subviews) 
    { 
     for(UIView *searchTextfield2 in searchTextfield.subviews) { 
      if([searchTextfield2 isKindOfClass: [UITextField class]]){ 
       [(UITextField *)searchTextfield2 setKeyboardAppearance: UIKeyboardAppearanceDark]; 
      } 
     } 


    } 

Стандартная оговорка. Это «официально» нахмурило Apple, но потому, что вы просто повторяете UIViews с помощью публичного api, вы «технически» в порядке.

Смежные вопросы