2013-09-26 16 views
5

在cocoa-touch项目中是否有一个有用的属性可以允许在整个应用程序中设置唯一一致的键盘外观样式?假设我想在我的应用程序中使用的所有textField和textView都不需要直接修改任何内容,就需要UIKeyboardAppearanceAlert。有可能吗?在整个应用程序中设置UIKeyboardAppearance

回答

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

+9

其实在iOS7如果你打电话'[的UITextField外观] setKeyboardAppearance:UIKeyboardAppearanceDark]'它的工作原理,即使财产没有UI_APPEARANCE_SELECTOR装饰 –

+4

卢卡的代码为我工作用的UITextField,但我的应用程序崩溃时,我试图做与UITextView相同的事情。 – arlomedia

相关问题