ios - 如何等待几秒钟以确保在执行之前没有任何反应

标签 ios objective-c uipickerview

我有一个包含 2 个组件(列)的 UIPickerView,当用户完成选择时需要将其关闭。我希望它在 2 秒内等待用户消失。在这 2 秒内,如果用户执行任何选择,它将继续等待另外 2 秒。这是我的代码,让它在解雇前等待 2 秒。谢谢。

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

    double delayInSeconds = 2; // number of seconds to wait
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){

         [self.view endEditing:YES];
    });
}

最佳答案

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(todo) userInfo:nil repeats:NO];

-(void) todo {
[self.view endEditing:YES];
}

阻止这一切

[timer invalidate];

关于ios - 如何等待几秒钟以确保在执行之前没有任何反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25881345/

相关文章:

ios - 在 iOS/objective-C 中检测下划线和插入字符

iOS UIWebView 加载完成后不会更新其大小

ios - 在 Storyboard 中使用自定义 UIView 捕获 View 什么都不返回?

ios - 如何检测该应用程序正在从 safari 重定向打开?

ios - iMessage 应用程序不断重新启动

iphone - 覆盖它的 drawRect 时如何显示 UIButton 的标题

swift - 关于多个 UIPickerview

ios - UIPickerView,检测 "rolling wheel"起停?

iOS Objective-C/Swift 下载时读取文件

ios - UITextField InputView 需要一个完成按钮