Как изменить цвет фона клавиатуры в iOS?

Хотелось бы узнать, как программно изменить цвет фона клавиатуры в iOS? Фон обычно серый, но я уже видел черный фон (за буквами).

9 ответов

Решение

Для темного фона используйте

    mytextfield.keyboardAppearance = UIKeyboardAppearanceAlert;

Прочитайте, чтобы найти больше информации о UITextInputTraits (используйте UIKeyboardAppearanceDark на iOs 7+).

Чтобы изменить его глобально, вы можете использовать внешний прокси в AppDelegate... Я тестировал его в iOS 8, Swift:

UITextField.appearance().keyboardAppearance = .Dark

В iOS 7 UIKeyboardAppearanceAlert устарела, поэтому используйте это вместо:

mytextfield.keyboardAppearance = UIKeyboardAppearanceDark;

Если вам требуется поддержка более ранних версий iOS и iOS 7, и вы создали необходимые макросы (согласно /questions/5905906/kak-proverit-versiyu-ios/5905943#5905943), вы можете использовать это:

mytextfield.keyboardAppearance = (SYSTEM_VERSION_LESS_THAN(@"7.0") ? UIKeyboardAppearanceAlert : UIKeyboardAppearanceDark);

Обновление до swift 3.0

let textFieldAppearance = UITextField.appearance() textFieldAppearance.keyboardAppearance = .dark //.default//.light//.alert

Если вы используете Interface Builder, вы можете настроить внешний вид клавиатуры в Инспекторе атрибутов:

Сегодня просто используйте myTextField.keyboardAppearance = .dark

SWIFT 4+: в AppDelegate

UITextField.appearance().keyboardAppearance = .dark

Swift 5+ (TextView)

 textView.keyboardAppearance = .dark

В Объектив-C

Для темной клавиатуры

      [UITextField appearance].keyboardAppearance = UIKeyboardAppearanceDark;

Для светлой клавиатуры

      [UITextField appearance].keyboardAppearance = UIKeyboardAppearanceLight;

Вы можете определить это в AppDelegate, чтобы обрабатывать это глобально.

Другие вопросы по тегам