UISearchBar 在 UTableViewHeader 中无法正确显示

发布于 2024-11-03 08:26:15 字数 1072 浏览 1 评论 0原文

以编程方式添加了 uisearch bar 和 uisearchbardisplaycontoller (NO XIB),搜索栏显示在表标题中,但不起作用。

如果在显示控制器上设置Active:YES,setActive:NO,它看起来很好并且功能正常

您知道为什么会发生这种情况吗?

提前致谢

searchBar = [[UISearchBar alloc] init];
[self setSearchBarDisplayController:[[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self]];
[[self searchBarDisplayController] setDelegate:self];
[[self searchBarDisplayController] setSearchResultsDataSource:self];

summaryTableView = [[[UITableView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 416.0) style:UITableViewStylePlain] autorelease]; 
[summaryTableView setDataSource:self];
[summaryTableView setDelegate:self];
[summaryTableView setBackgroundColor:[UIColor clearColor]];
[summaryTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
[summaryTableView setRowHeight:[PayCell height]];

[summaryTableView setTableHeaderView:searchBar];

[self.view addSubview:summaryTableView];

[searchBarDisplayController setActive:YES];
[searchBarDisplayController setActive:NO];

Added a uisearch bar and uisearchbardisplaycontoller programatically (NO XIB) and the search bar sorta displays in the table header but is non functional.

if setActive:YES, setActive:NO on the display controller it appears just fine and is functional

Any ideas why this might be happening?

THanks in advance

searchBar = [[UISearchBar alloc] init];
[self setSearchBarDisplayController:[[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self]];
[[self searchBarDisplayController] setDelegate:self];
[[self searchBarDisplayController] setSearchResultsDataSource:self];

summaryTableView = [[[UITableView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 416.0) style:UITableViewStylePlain] autorelease]; 
[summaryTableView setDataSource:self];
[summaryTableView setDelegate:self];
[summaryTableView setBackgroundColor:[UIColor clearColor]];
[summaryTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
[summaryTableView setRowHeight:[PayCell height]];

[summaryTableView setTableHeaderView:searchBar];

[self.view addSubview:summaryTableView];

[searchBarDisplayController setActive:YES];
[searchBarDisplayController setActive:NO];

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱给你人给你 2024-11-10 08:26:15

难道是你没有为搜索显示控制器设置searchResultsDelegate?

    self.searchDisplayController.searchResultsDelegate = self;

开发者网站上参考是做到了这一点。如果没有看到更多代码,很难说,但不设置它可能是问题的根源。这是摘录:

searchResultsDelegate 的委托
搜索的表视图
显示结果。

@property(非原子,分配)
ID
searchResultsDelegate 讨论
默认为零。

Could it be that you haven't set up the searchResultsDelegate for the search display controller?

    self.searchDisplayController.searchResultsDelegate = self;

On the Developer Site reference is made to this. Without seeing more code, it's hard to say, but not setting it could be the root of your problem. Here's an excerpt:

searchResultsDelegate The delegate for
the table view in which the search
results are displayed.

@property(nonatomic, assign)
id
searchResultsDelegate Discussion The
default is nil.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文