UISearchbar 常用代理方法

本文详细介绍了如何在iOS应用中添加一个自定义的UISearchBar,并实现了搜索框的事件处理,包括搜索开始编辑、取消搜索和搜索触发的动作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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];
        
    }
    
   
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值