UISearchBar 没有出现
Posted
技术标签:
【中文标题】UISearchBar 没有出现【英文标题】:UISearchBar Not appearing 【发布时间】:2010-03-31 20:25:16 【问题描述】:我有视图控制器,在视图中我放了一个表格视图,并在表格的标题中添加了一个搜索栏...搜索栏没有显示,只是空的表格视图。
我需要做一些额外的事情吗?我很确定它与 UIViewController 的 view
插座有关,设置为 View
...
谢谢
【问题讨论】:
【参考方案1】:对于可能遇到此问题的其他任何人,我遇到了非常相似的情况,即添加了 UISearchBar 的 UITableViewController 没有显示。如果您发现自己处于这种情况,请仔细检查您是否真的在打电话:
initWithNibName:@"MyNibName" bundle:nil
初始化您的视图控制器,而不是常见的 Table View 初始化:
initWithStyle:UITableViewStylePlain
我愚蠢地将搜索栏添加到 Nib,然后使用样式 init 加载它(完全跳过 Nib 并从头开始加载表格视图)
【讨论】:
这有帮助,我将 nil 传递给 initWithNibName,这通常有效,但对于 UITableViewControllers 似乎没有。【参考方案2】:尝试将 tableView 的 tableHeaderView 设置为 searchBar。
self.tableView.tableHeaderView = searchBar;
如果您使用的是 IB,请务必连接插座,以便参考。
【讨论】:
【参考方案3】:试试这个,它对我有用:
- (void)viewDidAppear:(BOOL)animated
[super viewDidAppear:animated];
self.tableView.tableHeaderView = _searchBar;
[_searchBar becomeFirstResponder];
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
[_searchBar resignFirstResponder];
self.tableView.tableHeaderView = _searchBar;
-(void) scrollViewDidScroll:(UIScrollView *)scrollView
searchBar.frame = CGRectMake(0,MAX(0,scrollView.contentOffset.y),320,44);
【讨论】:
【参考方案4】:如果您将视图控制器设置为标签栏控制器的一部分,则除了 IB 中的“类”属性外,还要设置“NIB 名称”属性。我花了好几个小时才弄明白。
【讨论】:
【参考方案5】:已修复使用带有控制器的 UISearchBar。
【讨论】:
以上是关于UISearchBar 没有出现的主要内容,如果未能解决你的问题,请参考以下文章
iOS Scope Bar 添加到 UISearchBar 下后不出现
UISearchBar resignFirstResponder无法正常工作