【问题标题】:Help with Search bar scope buttons帮助搜索栏范围按钮
【发布时间】:2011-03-31 15:16:26
【问题描述】:

我有一个 UI 可以显示用户表中的数据,例如 FirstName、LastName、Email 等。现在我想创建一个搜索栏以及根据单击的范围按钮过滤数据的范围按钮。我有 2 个范围按钮,FirstName 和 LastName。默认情况下,FirstName 按钮被选中。下面是我如何将数据添加到可变数组中,

userData = [[NSMutableArray alloc] init];


    for (NSDictionary *tmpDic in response) {         
        [userData addObject: [NSString stringWithFormat: @"%@ %@", 
                                [tmpDic valueForKey: @"FirstName"],[tmpDic valueForKey: @"LastName"]]]; 
    }

我的搜索代码,

- (void) searchTableView {

    NSString *searchText = theSearchBar.text;
    NSMutableArray *searchArray = [[NSMutableArray alloc] init];

    for (NSString *sTemp in userData)
    {
        NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];

        if (titleResultsRange.length > 0)
            [copyuserData addObject:sTemp];
    }

    NSLog(@"Copied data is:%@", copyuserData);

    [searchArray release];
    searchArray = nil;
}

上面的代码非常适合搜索 userData 数组,但我不确定如何更改代码,以便根据 FirstName、LastName 范围按钮显示结果。我如何将按钮连接到搜索栏,以便它仅根据单击的范围栏按钮显示结果。提前谢谢..

【问题讨论】:

    标签: iphone ios4 button scope uisearchbar


    【解决方案1】:

    你需要做两件事: 1. 查看 searchBar.selectedScopeButtonIndex 的值 - 这将告诉您是否需要搜索名字或姓氏。 2. 根据范围按钮,您希望搜索每个数组项的第一部分或第二部分。有很多方法可以做到这一点。可能最简单的方法是保留从 tmpDic 填充的 2 个并行数组,firstNames 和 lastNames。然后对于实际搜索,您可以遍历 firstNames 或 lastNames,或者执行 for(int j=0;j

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 1970-01-01
      • 2012-09-23
      • 1970-01-01
      相关资源
      最近更新 更多