47

我想知道如何在 iOS 中以编程方式更改键盘背景颜色?背景通常是灰色的,但我已经看到黑色背景(字母后面)。

4

8 回答 8

53

对于深色背景,请使用:

mytextfield.keyboardAppearance = UIKeyboardAppearanceAlert;

阅读以了解有关UITextInputTraitsUIKeyboardAppearanceDark在 iOS 7+ 上使用)的更多信息。

于 2012-03-15T22:36:10.827 回答
35

要全局更改它,您可以在 AppDelegate 中使用外观代理...我已经在 iOS 8、Swift 中对其进行了测试:

UITextField.appearance().keyboardAppearance = UIKeyboardAppearance.dark
于 2015-07-29T22:37:01.547 回答
27

在 iOS 7 中,UIKeyboardAppearanceAlert已弃用,因此请改用:

mytextfield.keyboardAppearance = UIKeyboardAppearanceDark;

如果您需要同时支持早期的 iO​​S 和 iOS 7,并且您已经创建了必要的宏(根据https://stackoverflow.com/a/5337804/588253),您可以使用这个:

mytextfield.keyboardAppearance = (SYSTEM_VERSION_LESS_THAN(@"7.0") ? UIKeyboardAppearanceAlert : UIKeyboardAppearanceDark);
于 2013-09-24T21:22:16.250 回答
10

更新到 swift 3.0

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

于 2016-12-13T16:03:12.787 回答
4

如果您使用的是 Interface Builder,则可以在 Attributes Inspector 中设置键盘外观:

在此处输入图像描述

于 2019-01-29T16:33:47.973 回答
1

SWIFT 4+:在 AppDelegate 中

UITextField.appearance().keyboardAppearance = .dark
于 2019-04-21T10:56:19.597 回答
1

今天只用myTextField.keyboardAppearance = .dark

于 2019-12-11T13:18:30.257 回答
0

斯威夫特 5+(文本视图)

 textView.keyboardAppearance = .dark
于 2020-03-25T18:09:43.050 回答