问题

在大多数iPhone应用程序中,键盘第一次出现时会有相当大的延迟(即使在iPhone 4上,创建键盘也可能需要相当大的速度).

大多数人似乎对此没有意见.我不是,这真的让我很烦——而且我的应用程序的呈现方式,用户会非常困惑,当他们第一次点击文本字段时,几秒钟内什么都没有发生.


我试过的

谷歌搜索它带来了一个解决方案——不幸的是,这在iOS 4(see here)中是无效的.

我不认为解决办法很容易找到,如果我能马上悬赏,我会的.如果有人想出解决办法,我会非常激动.所有的解决方案都需要在用户不知情的情况下加载键盘.


所以

欢迎提出任何意见.完整的工作代码(适用于iOS 4和iOS 5)是值得赏金的(即使赏金必须稍后才来!).

如果找到解决方案,我计划创建一个自包含的"KeyboardPreload"类,人们可以将其放入他们的项目中,并用一行代码预加载键盘:)

推荐答案

UIResponder+KeyboardCache就是为了解决这个问题而写的.

从该项目的自述中:

UIResponder上的这个类别为您提供了一个简单的方法+cacheKeyboard,以便您可以控制何时完成缓存工作.例如,如果您正在从服务器加载一些数据,那么您可以在停机期间调用它.还有另一种方法+cacheKeyboard:采用可选的BOOL值.将YES传递给该方法会导致缓存调用在next runloop上发生.因此,如果在调用此方法之前执行动画,它不会中断该动画.

Objective-c相关问答推荐

多个 WKWebView 之间的 Cookie 共享

MKMapView zoom 到 viewDidLoad 上的用户位置?

Objective-C:在字符串中查找数字

pathForResource 返回 null

将长格式的 NSString 拆分为多行

如何获取 iPhone 的当前方向?

如何判断 Cocoa 和 Objective-C 中是否存在文件夹?

将子视图添加到 UIButton

你如何安排一个块在下一次运行循环迭代中运行?

在 NSMutableArray 的开头添加一个对象?

如何在情节提要场景中嵌入自定义视图 xib?

[NSNull null] 和 nil 有什么区别?

为什么 NSOrderedSet 不继承自 NSSet?

强制iphone应用程序以编程方式重新启动?

Xcode 在您的 keys 串中找不到此配置文件的有效私有证书/有效密钥对

Highlighted 和 Selected UIButton 的 State 有什么区别?

如何从 UIColor 对象中获取红绿蓝 (RGB) 和 alpha?

重复符号问题

UITableViewCell 选中行的文字 colored颜色 变化

无法更改 UILabel 文本 colored颜色