好吧,这个问题快把我逼疯了.

在我touch 我的UITextField之后,大约需要3-4秒的时间键盘才会弹出来.这只会在应用程序启动后第一次弹出键盘时发生,之后动画会立即开始.

起初我以为是加载太多图片的问题,或者说是我的UITableView张,但我刚刚创建了一个只有UITextField张图片的全新项目,我仍然遇到这个问题.我使用的是iOS 5,Xcode 4.2版,运行在iPhone 4S上.

这是我的代码:

#import "ViewController.h"

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 20, 280, 30)];
    textField.borderStyle = UITextBorderStyleRoundedRect;
    textField.delegate = self;
    [self.view addSubview:textField];
}

@end

这是所有应用程序的常见问题吗?

现在,我能做得更好的唯一方法是让textField成为viewDidAppear的第一响应者/辞职,但这并不能完全解决问题-它只是在视图加载时加载延迟.如果在视图加载时立即单击textField,仍然会出现问题;如果在视图加载后等待3-4秒才接触textField,则不会出现延迟.

推荐答案

所以问题不仅限于我之前认为的第一次安装,而且每次应用启动时都会发生.我的解决方案完全解决了这个问题.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Preloads keyboard so there's no lag on initial keyboard appearance.
  UITextField *lagFreeField = [[UITextField alloc] init];
  [self.window addSubview:lagFreeField];
  [lagFreeField becomeFirstResponder];
  [lagFreeField resignFirstResponder];
  [lagFreeField removeFromSuperview];
}

Ios相关问答推荐

在SwiftData中从@ Query创建可排序、有序和分组的数据

什么是最好的方式使用DateFormatters在可扩展视图cellForRowAt方法

使用SWIFT传输表示时的条件文件表示格式

磁盘上的Objective-C ISA指针与实例化对象时的比较

当应用程序被杀死时是否还能获取位置?

Swift - 缺少函数参数在编译期间不会失败,甚至会导致不同的数据类型?

如何使用 Rxswift 处理程序最喜欢的按钮

React Native IOS base64 编码图像不显示

AppCenter 错误:/usr/bin/xcodebuild 失败,返回码:65

滑动以返回特定的 SwiftUI 视图

实现一个将块用作回调的方法

如何 comments .plist 文件中的行?

Select UITableViewCell 时 UIView backgroundColor 消失

标题为 UIImage 的导航栏

如何在 iOS 中判断暗模式?

什么是伞头?

文本未包含在 swift UI 中

使用 swift 将本地 html 加载到 UIWebView

UISegmentedControl 以编程方式更改段数

UITextView 内容插图