如何显示UISearchBar搜索的建议?

时间:2015-04-01 06:51:41

标签: ios objective-c iphone uisearchbar uisearchbardisplaycontrol

我正在制作一个演示天气应用程序,在这里我使用UISearchBar所以可以用户输入城市名称,但我不知道如何显示该建议。

例如,如果用户输入“lon”,那么应该有城市名称建议从伦敦等“lon”开始

2 个答案:

答案 0 :(得分:1)

UISearchBar有自己的授权协议UISearchBarDelegate,方法 -

-(BOOL)searchBar:(UISearchBar *)searchBar
shouldChangeTextInRange:(NSRange)range
  replacementText:(NSString *)text

在编辑时可以执行一些额外操作,您可以在此处NSPredicate查看插入的文字是否包含BEGINSWITHCONTAINS输入文字的城市。

答案 1 :(得分:0)

你可以通过

来做到这一点
  1. 创建一个要显示的地方的数组(List)...在数组中添加对象!

    NSArray *list;

    NSArray *listFiles;

  2. 2.过滤内容..

    -(void)filter :(NSString *) match1
    
    
        listFiles = [[NSMutableDictionary alloc] init];
    
        NSPredicate *sPredicate = [NSPredicate predicateWithFormat:@"FullName BEGINSWITH[c] %@", match1];
    
        listFiles = [[ContactDect filteredArrayUsingPredicate:sPredicate ] mutableCopy];
        f_name_array=[[NSMutableArray alloc]init];
    
        for (NSDictionary *d in listFiles) {
    
            [self.f_name_array addObject:[d objectForKey:@"FullName"]];
    
        }
        list=f_name_array;
        NSLog(@"%@",list);
    
    
    
    }
    
    1. 然后在numberOfRowsInTableview中计算列表:
    2. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [listFiles count]; }

      1. cellForRow ::::
      2. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        static NSString *CellIdentifier = @"abccell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; cell.textLabel.text = [NSString stringWithFormat:@"%@" ,[listFiles objectAtIndex:indexPath.row]]; return cell; }

          

        编辑textFeild时调用Filter方法!

        [self filter:textfeild1.text];
        

        我希望它会对你有所帮助.....