如何在 iOS 7 中更改键盘的背景颜色

Posted

技术标签:

【中文标题】如何在 iOS 7 中更改键盘的背景颜色【英文标题】:How to change the background color of keypad in iOS 7 【发布时间】:2013-09-19 12:19:09 【问题描述】:

我正在使用Xcode 5 来开发应用程序。我想更改ios 7 中的键盘颜色。我想要黑色或蓝色之类的颜色。

如何在 iOS 7 中更改键盘颜色?

【问题讨论】:

【参考方案1】:

您只能使用UIKeyboardAppearance 将键盘外观设置为下列三种中的任何一种。

UIKeyboardAppearanceDefault  // Corresponds to the UIKeyboardAppearanceLight
UIKeyboardAppearanceDark     // Available in iOS 7.0 and later.
UIKeyboardAppearanceLight    // Available in iOS 7.0 and later.

还有一个名为UIKeyboardAppearanceAlert 的常量,但现在已弃用。你应该改用UIKeyboardAppearanceDark

不能使用任何自定义或未定义的颜色。 所以,使用...

myTextfield.keyboardAppearance = UIKeyboardAppearanceDark;

【讨论】:

【参考方案2】:

在 iOS 7 中,由于键盘是半透明的,因此我可以通过在键盘后面添加一个彩色子视图来实现此效果,该子视图以 keyboard notifications 显示和隐藏。

我创建了一个GitHub 项目来演示这种技术。请记住,它目前仅适用于纵向,并且显然仅适用于 iOS 7。

https://github.com/meekapps/TintedKeyboard

【讨论】:

看起来,真的很棒,实际上! 基于“您只能使用UIKeyboardAppearanceDarkUIKeyboardAppearanceLight”cmets,我认为这是最接近回答原始问题的方法。【参考方案3】:

您可以使用keyboardAppearance方法更改颜色。

_textField.keyboardAppearance = UIKeyboardAppearanceDark;

看看Apple API docs

【讨论】:

感谢大家的回复【参考方案4】:

根据您想要自定义颜色的评论:

可以这样做...只需使用普通键盘,然后观察UIKeyboardWillShowNotificationUIKeyboardWillHideNotification,这样您就可以在键盘后面显示颜色UIView

这会很麻烦,但它会起作用,因为默认键盘在 iOS 7 上在一定程度上是透明的。

祝你好运。

【讨论】:

以上是关于如何在 iOS 7 中更改键盘的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在iOS 7上更改状态栏背景颜色和文本颜色? Warif Akhand Rishi

如何在 iOS 7 中更改 TableView 的 IndexBar 的背景颜色?

如何在 iOS 7 或 6 中更改导航栏颜色?

在 iOS 中使用动画更改标签背景颜色

iOS 7下更改UITabBarItem徽章背景颜色

如何在 iOS7 中更改 UISearchBar 的背景颜色