我有一个NSSearchField,它的操作方法通过分析发送者参数(字符串)来完成所有的搜索工作。
现在搜索的东西(输入一个大的数组)是CPU密集型的,这让我的搜索字段冻结了几秒钟。
在其他情况下,我会分离另一个NSThread,以防止我的图形用户界面冻结。但在这种情况下,这是不可能的,因为每当用户在搜索字段中输入另一个字母时,我都会分离另一个(“搜索”)线程。
有没有其他方法可以让我的NSSearchField不被冻结?
顺便说一句:我的猜测是没有,因为即使是开发人员文档的seach字段也总是冻结:)
发布于 2011-07-27 07:20:53
我使用GCD。我使用异步队列,作业会定期检查当前的搜索模式是否已更改,如果已更改,则退出。这似乎工作得很好。
发布于 2011-03-29 06:47:38
你不能使用setSendsWholeSearchString:在输入字母时停止搜索吗?
发布于 2011-09-06 03:18:45
每次用户输入内容时设置一个NSTimer。如果已经设置了计时器,则使其无效或重新安排它。
这样,无论用户输入的速度有多快,您都只需要每隔N秒刷新一次搜索。
https://stackoverflow.com/questions/4210885
复制相似问题