键入时显示下拉菜单[关闭]
Posted
技术标签:
【中文标题】键入时显示下拉菜单[关闭]【英文标题】:Show drop down menu when typing [closed] 【发布时间】:2014-02-06 01:35:40 【问题描述】:我有一个 UITextField,我想创建一些类似于 ios 联系人应用程序中的下拉菜单的内容。
当用户开始输入时,我希望菜单下拉。它实际上并不需要根据名称来限制它显示的数据,但如果可以的话,那就太好了(例如:如果用户键入“m”,它只显示以 m 开头的字符串等等)。如果用户选择一个,则该类型将被发送到 UITextField 并在其中显示。如果有这样的开源选择器,那就太好了。如果没有,有没有办法呈现包含数组中所有项目的类似内容。这不必很复杂,不必限制用户键入或任何内容时显示的数据。
【问题讨论】:
您只需在文本字段下方添加一个表格和滚动视图(以显示任意数量的项目)并保持它们隐藏,当您开始输入时使其可见。这只有您需要做的......跨度> 过滤人可以使用NSPredicate。如果你需要一些指导,有很多下拉示例。看看..code4app.net/search/drop%20down%20menu 【参考方案1】:基于this 链接的响应。将向您展示如何在自动完成的下拉列表中获取 URL 值。
-
您需要有一个 NSMutableArray 和可能的自动完成值。在这个例子中,我们将使用一个 NSMutableArray 的过去 URL,每次用户浏览到一个 URL,我们都会将它添加到数组中。
你需要创建一个 UITable 来显示值
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];
需要在编辑字段时显示表格
- (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];
不要忘记将正确的 UITable 和 UITextfield 委托添加到您的 .h 文件中。
【讨论】:
这是一个链接只回答兄弟。你很快就会被选上。我建议你扩展它。 没有意识到只有链接是不受欢迎的。我会提供更多信息。 +1 以获得好的答案。:) 哈哈谢谢。它必须代替复选标记:)以上是关于键入时显示下拉菜单[关闭]的主要内容,如果未能解决你的问题,请参考以下文章