ios - 在整个应用程序中设置 UIKeyboardAppearance

标签 ios objective-c cocoa-touch uikit uikeyboard

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

最佳答案

不,这是不可能的。 keyboardAppearanceUITextInputTraits 协议(protocol)的一部分,未标记为 UIAppearance 方法。如果是,您可以执行以下操作:

[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceAlert];

您可以通过查看文档或在您的代码中查看 UIKit header 来识别可与外观代理一起使用的方法(按住 command 键并单击一个方法,它会将您带到 header 。

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

关于ios - 在整个应用程序中设置 UIKeyboardAppearance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19030619/

相关文章:

ios - 保持 tableview 的第一行不变

swift - 使用不跟随拇指的屏幕边缘平移手势识别器的弹出 View Controller

cocoa-touch - UIActivityViewController : Activity-Items configuration

iOS 使 VPN 服务器地址可变

iphone - 上传到应用商店但不公开

ios - objective-c :MFMailComposeViewController中的粗体消息正文

ios - 通过人员选择器添加数据,但 UITableView 不会重新加载

ios - 在 iOS 中实现永久动画背景的最佳技术是什么?

objective-c - 从 NSData 显示 NSImage

ios - 如何在 ios 中创建返回上一屏幕的后退按钮