UITextField自动完成

是否可以根据输入的内容自动完成UITextField? 我需要这个的原因是因为我有一组用户需要选择的预定义单词,而且列表大约是1000项。 我想在UITableView中显示并让用户选择但是在表格列表中有1k项目我认为不是一个好主意。 谢谢

您可以通过不在表视图中显示所有1k项目来执行此操作,但是当用户开始在文本字段中键入字母时,您可以填充表格视图。 为此,您必须将所有项目放在某些数据结构或数据库中,您可以使用某些排序或查询来获取与用户输入内容相关的项目。 例如,如果用户开始从’a’键入字母,则获取具有字母a的项目并使用它们填充表格。 执行此操作的一种方法是将所有内容放在数据库和UITextField委托中

 - (void)textFieldDidBeginEditing:(UITextField *)textField 

启动一个NSTimer对象,该对象将每隔一秒调用一个函数,该函数将从数据库中为您提供所选数据,并使用该数据填充表。

你还必须在UITextField委托中停止该计时器 –

 - (BOOL)textFieldShouldReturn:(UITextField *)textField 

要么

 -(void) textFieldDidEndEditing:(UITextField *)textField 

您需要利用TextFieldTextDidChange ,如下所述: 如何为UITextField获取textDidChange(对于UISearchBar)方法? 但是你是如何呈现可用的集合,我不太确定……你可以保持表空,直到输入X字符,然后搜索匹配以填充你的(现在较小的)表格