UITextField自动完成

时间:2011-06-14 03:58:08

标签: objective-c ios cocoa-touch uitableview uitextfield

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

2 个答案:

答案 0 :(得分:0)

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

- (void)textFieldDidBeginEditing:(UITextField *)textField

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

此外,您必须在UITextField委托 -

中停止该计时器
- (BOOL)textFieldShouldReturn:(UITextField *)textField

-(void) textFieldDidEndEditing:(UITextField *)textField 

答案 1 :(得分:0)

你需要利用TextFieldTextDidChange,如下所述:How can I get a textDidChange (like for a UISearchBar) method for a UITextField?但是你如何呈现可用的集合,我不太确定......你可以保持表空为止输入字符然后搜索匹配以使用

填充您的(现在更小的)表格