【问题标题】:UITextField autocompleteUITextField 自动完成
【发布时间】:2011-06-14 03:58:08
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

- (void)textFieldDidBeginEditing:(UITextField *)textField

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

您还必须在 UITextField 委托中停止该计时器 -

- (BOOL)textFieldShouldReturn:(UITextField *)textField

-(void) textFieldDidEndEditing:(UITextField *)textField 

【讨论】:

    【解决方案2】:

    您需要利用TextFieldTextDidChange,如此处所述:How can I get a textDidChange (like for a UISearchBar) method for a UITextField? 但您如何呈现可用集,我不太确定...您可以保持表格为空,直到输入 X 个字符并且然后搜索匹配项以填充您的(现在更小的)表

    【讨论】:

      猜你喜欢
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-24
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多