关于ios:更改键盘整个应用程序的外观

Change the keyboardAppearence for the whole app

使用iOS7,协议UITextInputTraits获取枚举UIKeyboardAppearance的新值。
我特别想将keyboardAppearance更改为UIKeyboardAppearanceDark,以匹配当前应用的深色设计。

我首先查看了Info.plist,但似乎其中没有一个键可让您全局设置此属性。

我的第二个想法是使用UIAppearance,但是不幸的是keyboardAppearance没有UI_APPEARANCE_SELECTOR装饰器。
但是出于某种原因,此代码:

1
[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceDark];

在iOS7上可用,但在iOS6上崩溃。

更奇怪的是以下代码:

1
[[UITextView appearance] setKeyboardAppearance:UIKeyboardAppearanceDark];

在iOS7和iOS6中均不起作用。

一个好主意可以是创建UITextField和UITextView的子类,但是这种方式在UISearchBar中不起作用。

我不想创建一个类别,因为我不想对Apple类的实现进行某种程度的覆盖,并且可能不会成为未来的证明。

有人处理过吗?


使用此控件
https://github.com/hackiftekhar/IQKeyboardManager

1
2
3
4
5
6
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[IQKeyboardManager sharedManager] setOverrideKeyboardAppearance:YES];
    [[IQKeyboardManager sharedManager] setKeyboardAppearance:UIKeyboardAppearanceDark];
    return YES;
}

它主要用于管理键盘和textField之间的距离,但是您的问题也可以通过此强大的库解决。