在整个应用程序中设置UIKeyboardAppearance

时间:2013-09-26 14:10:24

标签: ios objective-c cocoa-touch uikit uikeyboard

cocoa-touch项目中是否有一个有用的属性可以在整个应用程序中设置一对一的键盘外观?假设我想在我的应用程序中的所有textFields和textViews上UIKeyboardAppearanceAlert而不直接修改任何内容。有可能吗?

1 个答案:

答案 0 :(得分:8)

不,这是不可能的。 keyboardAppearanceUITextInputTraits协议的一部分,未标记为UIAppearance方法。如果是,你可以做类似的事情:

[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceAlert];

您可以通过查看文档来识别可以与外观代理一起使用的方法,或者在代码中,在UIKit标题处识别可以使用的方法(按命令单击某个方法,它会将您带到标题。

例如,在UINavigationBar.h中,您可以看到:

@property(nonatomic,retain) UIColor *barTintColor NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR;  // default is nil

标记UI_APPEARANCE_SELECTOR表示可以在外观代理上使用此属性。它不在keyboardAppearance上,并且看起来不像info.plist中的任何键允许您定义应用程序范围的外观。

最好的办法是将textfield和textview子类化,并在任何地方使用这些子类。