键入时显示下拉菜单[关闭]

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 以获得好的答案。:) 哈哈谢谢。它必须代替复选标记:)

以上是关于键入时显示下拉菜单[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

单击下拉菜单时显示覆盖层

悬停时显示/隐藏下拉菜单 Flutter for web

在引导下拉菜单中悬停时显示活动的父菜单项

获取 BootstrapVue 下拉菜单(b-dropdown)以在单击按钮时显示

如何通过悬停而不单击[重复]来显示下拉菜单和子菜单项

下拉菜单打不开