答案 0 :(得分:0)
首先,您需要拥有一个NSArray,其中包含您要提供的所有数据作为用户的潜在选项。这里我使用的是pastURL的NSMutableArray,每次用户浏览一个URL时,我们都会将它添加到数组中。 接下来,您需要创建一个视图以显示用户可以从中选择的URL。这样做的一个好方法是在输入字段下创建一个列表视图,列出所有可能的选项。此表视图只有在用户在文本字段中键入数据时才会出现,并且可以在其余时间隐藏。
autocompleteTableView = [[UITableView alloc] initWithFrame:
CGRectMake(0, 80, 320, 120) style:UITableViewStylePlain];
autocompleteTableView.delegate = self;
autocompleteTableView.dataSource = self;
autocompleteTableView.scrollEnabled = YES;
autocompleteTableView.hidden = YES;
[self.view addSubview:autocompleteTableView];
使用UITextFieldDelegate
并实施shouldChangeCharactersInRange
协议。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
autocompleteTableView.hidden = NO;
NSString *substring = [NSString stringWithString:textField.text];
substring = [substring
stringByReplacingCharactersInRange:range withString:string];
[self searchAutocompleteEntriesWithSubstring:substring];
return YES;
}
- (void)searchAutocompleteEntriesWithSubstring:(NSString *)substring {
// Put anything that starts with this substring into the autocompleteUrls array
// The items in this array is what will show up in the table view
[autocompleteUrls removeAllObjects];
for(NSString *curString in pastUrls) {
NSRange substringRange = [curString rangeOfString:substring];
if (substringRange.location == 0) {
[autocompleteUrls addObject:curString];
}
}
[autocompleteTableView reloadData];
}
有关详情,请查看:Tutorial
或下载演示应用:Demo App