帮助UISearchBar,位于UITableView的第一个单元格中?不会输入searchBar:textDidChange方法

时间:2011-08-08 09:10:23

标签: iphone ios uitableview uisearchbar

今天我创建了一个tableView,类似于iPhone Contacts应用程序。我使用代码

将TableView放入第一个单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([indexPath indexAtPosition:0] == 0) {
        static NSString *CellIdentifier = @"SearchCell";
        UITableViewCell *searchBarCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        searchBar = [[UISearchBar alloc] initWithFrame:searchBarCell.frame];
        [searchBarCell addSubview:searchBar];
        return searchBarCell;
    } // ...

searchBar正确显示,但是当我实现搜索方法时,我发现当我输入searchBar时没有输入它们...例如这个方法:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchTerm

我认为这是因为searchBar是另一个类的子视图,tableView Cell?这就是为什么搜索栏无法访问搜索方法?我还将搜索栏委托设置为self,仍然没有。

任何身体都能帮忙吗? 非常感谢提前:)

3 个答案:

答案 0 :(得分:2)

请在.h

中添加UISearchBarDelegate
@interface CategoriesViewController : UIViewController <UISearchBarDelegate,UITableViewDelegate,UITableViewDataSource>{

并在.m中输入代码

searchBar.delegate=self;

答案 1 :(得分:2)

您没有设置UISearchBar的委托。我读了你在其他部分做过的评论,但你必须在创建对象后这样做。我的意思是在线后:

searchBar = [[UISearchBar alloc] initWithFrame:searchBarCell.frame]; 

答案 2 :(得分:0)

您可以直接在xib即tableview的子视图中添加searchview。否则你可以把uisearchbar作为.h文件中的searchBar,你必须分配这个searchBar而不是委托搜索栏,并使用.h文件中的搜索栏的所有方法。