在整个应用程序中设置UIKeyboardAppearance

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

不,这是不可能的。 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子类化,并在任何地方使用这些子类。