小编典典

UITextField 的初始键盘动画的超慢滞后/延迟

all

好吧,这个问题一直让我发疯。

触摸我的UITextField. 这仅在应用程序启动后第一次弹出键盘时发生,之后动画立即开始。

起初我以为是加载太多图像的问题,或者我的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,我不会得到延迟。


阅读 77

收藏
2022-08-20

共1个答案

小编典典

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

- (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];
}
2022-08-20