现在的位置: 首页 > 综合 > 正文

UISearchbar 常用代理方法

2017年10月06日 ⁄ 综合 ⁄ 共 2113字 ⁄ 字号 评论关闭

UISearchBar  searchbar =[[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
        searchbar.showsCancelButton=NO;
        searchbar.barStyle=UIBarStyleDefault;
        searchbar.placeholder=@"aaaaaa";
        searchbar.keyboardType=UIKeyboardTypePhonePad;
        
        [cell addSubview:searchbar];
        [searchbar release];


添加搜索框事件:
-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
    [searchBar setShowsCancelButton:YES animated:YES];
    self.tableView.allowsSelection=NO;
    self.tableView.scrollEnabled=NO;
}
添加Cancel事件:
-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
    searchBar.text=@"";
    [searchBar setShowsCancelButton:NO animated:YES];
    [searchBar resignFirstResponder];
    self.tableView.allowsSelection=YES;
    self.tableView.scrollEnabled=YES;
}
添加搜索事件:
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
    NSArray *results;
    [searchBar setShowsCancelButton:NO animated:YES];
    [searchBar resignFirstResponder];
    self.tableView.allowsSelection=YES;
    self.tableView.scrollEnabled=YES;
    [self.tableDate removeAllObjects];
    [self.tableDate addObjectsFromArray:results];
    [self.tableView reloadData];
}
最后绑定数据就是

复制数据的
-(void)resetSearch{
    self.names=[self.allNames mutabledeepCopy];
    NSMutableArray *keyArray=[[NSMutableArray alloc]init];
    keyArray addObjectsFromArray:[self.allNames allkeys]sortedAaa>>>>>:[[@selector(compare;) ]];
    self.keys=keyArray;
    [keyArray release];
}

实现搜索的
-(void)handleSearchForTerm:(NSString *)searchterm{
    NSMutableArray *s=[[NSMutableArray alloc]init];
    [self resetSearch];
    for (NSString *key in self.keys){
        NSMutableArray *array=[names valueForKey:key];
        NSMutableArray *toRemove=[[NSMutableArray alloc]init];
        for (NSString *name in array) {
            if([name rangeOfString:searchterm options:NSCaseInsensitiveSearch].location==NSNotFound)
                [toRemove addObject:name];
        }
        if ([array count]==[toRemove count]) {
            [s addObject:key];
            [array removeObjectsInArray:toRemove];
            [toRemove release];
        }
        [self.keys removeObjectsInArray:s];
        [s release];
        
    }
    
   
}
【上篇】
【下篇】

抱歉!评论已关闭.