在ipad中使用搜索栏时动态显示列表

时间:2011-05-05 08:35:45

标签: iphone cocoa-touch ipad list

我正在创建一个应用程序,其中我正在使用一个包含大量单词的字典。现在我正在创建一个搜索栏,这将用于输入我将在字典中查找的单词。实际上这计划是用下面的代码完成的,但现在我想要的是每当我写一个句子说“爸爸喝果汁”然后列表应该显示我所有的排列和组合,我的意思是它必须单独显示所有三个单词,然后它必须显示包含我输入的任何单词的句子: - 她饮用水,石灰汁,妈妈和爸爸以及其他单独或组合包含这些单词的句子。

- (void) searchTableView {

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

    for (NSDictionary *dictionary in listOfItems)
    {
        NSArray *array = [dictionary objectForKey:@"Words"];
        [searchArray addObjectsFromArray:array];
    }

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

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

   [searchArray release];
   searchArray = nil;
}

1 个答案:

答案 0 :(得分:0)

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"( %K contains[cd] %@ ) OR  ( %K contains[cd] %@ ),yourfirstKey,searchText];

 NSArray * filteredArray = [searchArray filteredArrayUsingPredicate:predicate];

希望这有帮助