becomeFirstResponder 减慢应用程序的速度

Posted

技术标签:

【中文标题】becomeFirstResponder 减慢应用程序的速度【英文标题】:becomeFirstResponder slows down app 【发布时间】:2011-04-12 06:13:56 【问题描述】:

我有两个用于用户名和密码的文本字段以及一个提交按钮。当按下提交按钮时,会执行检查以查看是否输入了用户名和密码。如果不是,它会显示一条警报消息,并且未输入值的字段将成为第一响应者。

-(IBAction)loginPressed:(id)sender 


    if ([username.text length] == 0)
    
        [self showAlert:@"Invalid Username/ Password"];
       [username becomeFirstResponder];
        return;
    

    if ([password.text length] == 0)
    
        [self showAlert:@"Invalid Username/ Password"];
      [password becomeFirstResponder];
        return;
    

我观察到单击按钮时,按钮保持选中状态约 1.5 秒,然后显示警报。如果我注释掉 becomeFirstResponder 方法,它会毫无停顿地工作。但是我需要becomeFirstResponder 在那里。我如何使用它来加快速度?

【问题讨论】:

可能很愚蠢的问题:如果切换 becomeFirstResponder 和 showAlert 的顺序会发生什么? 嘿,解决了。现在很好用。谢谢。将其发布为答案。 【参考方案1】:

切换 becomeFirstResponder 和 showAlert 的顺序。

【讨论】:

我有同样的问题,没有警报:(。调用 becomeFirstResponder 的巨大延迟(几秒钟!)。 我也遇到了同样的问题,没有警报 - 只是取消隐藏视图/文本字段,然后调用 becomeFirstResponder。有什么想法吗?【参考方案2】:

[self showAlert:@"无效的用户名/密码"];需要一些时间。你不能speup那个东西。

【讨论】:

但是根据 OP,如果 becomeFirstResponder 被删除没有延迟,所以显然,showAlert 不是这里的问题。

以上是关于becomeFirstResponder 减慢应用程序的速度的主要内容,如果未能解决你的问题,请参考以下文章

becomeFirstResponder() 不起作用

becomeFirstResponder 似乎仅第一次用于摇动手势

Swift - 如何使用 becomeFirstResponder 跳转到顶部

PFFacebookUtils logInWithPermissions 减慢应用程序

SoundPool 减慢应用程序

应该总是在主线程上调用 becomeFirstResponder() 吗?