我有一个带搜索字段的基本Cocoa应用程序。当用户键入第一个字母时,将开始搜索,这可能需要一段时间。
用户输入第二个字母后,应立即取消第一个搜索并以新搜索字符串开头。
搜索本身必须在主线程上发生。
有没有办法定期"暂停"在主线程上运行的搜索任务是否让主线程处理任何挂起的键事件?
我尝试添加以下内容,但它不太有用。光标闪烁,但输入的新字母不会显示。
let untilDate = NSDate(timeIntervalSinceNow: 0.25)
while NSRunLoop.currentRunLoop().runMode(NSEventTrackingRunLoopMode, beforeDate: untilDate)
{
print("did process")
}
PS:另一种解决方案是在第一个字母之后暂停搜索,以查看用户是否要输入更多内容。但是,如果有办法完成上述任务,搜索将更快完成。