如何为整个App设置UIKeyboard-Style?

时间:2013-01-31 18:50:38

标签: ios objective-c cocoa-touch uitextfield uiappearance

我目前正在尝试全局设置键盘样式,但我的方法不起作用。 我尝试使用UIAppearance并将这行代码放在AppDelegate中:

[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceAlert];

但我在控制台上得到的是:

[UISearchBarTextField _UIAppearance_setKeyboardAppearance:]: unrecognized selector sent to instance 0xa1897e0

任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:8)

iOS7扩展了UITextFields的UIAppearance协议,你现在可以在UITextField上设置keyboardAppearance。

[UITextField appearance].keyboardAppearance = UIKeyboardAppearanceDark;

但是,UITextView并不支持它。对于本课程,我将使用jszumski的解决方案

答案 1 :(得分:2)

UIAppearance仅适用于专门用宏UI_APPEARANCE_SELECTOR标记的方法兼容,不幸的是keyboardAppearance不是其中之一。

获得所需内容的最佳方法是继承UITextField并在子类的keyboardAppearance = UIKeyboardAppearanceAlert;init方法中设置initWithFrame:。然后,只要在应用中使用UITextField,就专门使用您的课程。