UITextField 代理方法-----實(shí)時(shí)監(jiān)控輸入內(nèi)容
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([textField.text isEqualToString:@""] && [string isEqualToString:@" "]) {
return NO;
}
NSString *key;
if ([string isEqualToString:@""]) {
key = [textField.text substringToIndex:textField.text.length - 1];
} else {
key = [NSString stringWithFormat:@"%@%@", textField.text, string];
}
if ([string isEqualToString:@"\n"]) {
[self searchDoneButtonAction:nil];
} else {
//優(yōu)化了延遲500毫秒記錄輸入內(nèi)容例衍,發(fā)起請(qǐng)求
[NSRunLoop cancelPreviousPerformRequestsWithTarget:self];
[self performSelector:@selector(afterDelayRequest:) withObject:key afterDelay:0.5];
}
return YES;
}
延時(shí)請(qǐng)求方法
- (void)afterDelayRequest:(NSString *)key {
NSLog(@"輸入的信息:%@", key);
if (self.searchInputSearchKeyCompletionHandler) {
self.searchInputSearchKeyCompletionHandler(key);
}
}