ios – 在UITextField中输入后稍微延迟后执行操作

前端之家收集整理的这篇文章主要介绍了ios – 在UITextField中输入后稍微延迟后执行操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
希望有人可以对此有所了解.

我正在为一家公司开发应用程序,他们有一个自定义UITextField的搜索字段.目前,它使用输入的每个字母来优化搜索.

问题:他们有一个小弹出窗口,指示它正在搜索,每次按键时,你会看到它在屏幕上闪烁.显然,他们不想要这个.

我想做的虽然不确定如何,但不是在每个按键上完善搜索,而是在完成打字时进行搜索.但是,我也不想添加搜索”按钮.我只是希望他们完成输入,一秒钟,延迟或其他什么,搜索发生.

有没有办法检测用户何时完成输入?有人这样做过吗?

提前致谢.

解决方法

您可以使用简单的NSTimer来完成此操作.在shouldChangeCharactersInRange中:检查计时器是否有效,如果是,使其无效,然后重新启动计时器.当最终大声敲响时间时,意味着用户没有在您指定的时间间隔内输入任何内容.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (someTimer.isValid) {
        [someTimer invalidate];
    }
    someTimer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(timeToSearchForStuff:) userInfo:nil repeats:NO];

    return YES;
}

正如@Jai Govindani指出的那样,为了实现这个方法,你需要将你的控制器指定为你的UITextField的委托,并确保你的控制器符合UITextFieldDelegate协议.

猜你在找的iOS相关文章