我有一个关于(UITextfield和Webservice)的查询,例如
当我开始在UITextfield中编写文本时。确保,应用程序不会为每个键入的字母查询服务器(Webservice)。它应该等到我暂停然后发送请求。
使用UITextField时可以吗?
提前致谢
答案 0 :(得分:3)
您可以使用performSelector:withObject:afterDelay:
和cancelPreviousPerformRequestsWithTarget:方法执行此操作。这是示例代码 - 用户在编辑文本字段中暂停2秒后调用requestAction:
。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
// Cancel previously registered perform request
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(requestAction) object:nil];
// schedule a call with 2 sec delay
[self performSelector:@selector(requestAction) withObject:nil afterDelay:2.0];
return YES;
}
- (void) requestAction{
NSLog(@"Request!");
}