5

可可触摸项目中是否有一个有用的属性可以允许在整个应用程序中设置唯一一致的键盘外观样式?假设我想要UIKeyboardAppearanceAlert在我的应用程序中拥有的所有 textFields 和 textViews 而不直接修改任何内容。有可能吗?

4

1 回答 1

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

于 2013-09-26T15:46:30.980 回答