首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UISearchBar in UIView

UISearchBar in UIView
EN

Stack Overflow用户
提问于 2012-11-12 18:36:42
回答 1查看 1.4K关注 0票数 0

我很难按照指示行事。我有一个UISearchBar在一个UIView。用户将在UISearchBar中输入搜索字符串,并单击搜索图标进行搜索。结果将显示在一个新窗口(UITableView)中。

我的搜索向我展示了如下:

UISearchDisplayController不能添加到UIView中,因为它不是从UIView继承的。可以使用UISearchBar在接口生成器中添加IBOutlet,然后以编程方式使用该UISearchBar创建UISearchDisplayController。 只需使用代码(假设视图控制器是vc):vc addSubview:mySearchDisplayController.searchBar;// Note,searchBar是视图,mySearchDisplayController只控制searchBar等等。

此外,这也是:

只需让视图控制器实现UISearchBarDelegate即可。在xib文件中,您所需要做的就是向视图中添加一个UISearchBar,并根据需要对其进行配置,为它创建一个出口(可选,但确实有助于显式),并将委托出口分配给视图控制器。然后,为了响应搜索栏事件,根据需要实现UISearchBarDelegate协议方法。例如:- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { self handleSearch:searchBar;}

  • (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar { self handleSearch:searchBar;}
  • (HandleSearch):(UISearchBar *)searchBar {NSLog(@“用户搜索%@",searchBar.text);searchBar resignFirstResponder;//如果您希望键盘离开}
  • (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar {NSLog(@“用户取消搜索”);searchBar resignFirstResponder;//如果您希望键盘离开}

我就是不明白!我应该将mySearchController添加到UIView中吗?还是我的UISearchBar?将它添加到我的UIView中,什么都不会发生;将它添加到我的UISearchBar中会使应用程序更加完善。我连一个错误都没有-它只是挂起。

然后是第二部分:代表。我应该把代表放进我的UIView吗?还是在UISearchDisplayController?不知道该往哪个方向走,到目前为止什么也不起作用。请帮帮忙。

在这一点上,我真正想要的只是让handleSearch方法得到执行。提前谢谢您的帮助。

很困惑。

EN

回答 1

Stack Overflow用户

发布于 2013-09-27 09:25:48

其想法是在Interface中创建一个搜索栏作为出口,然后使用以下代码创建UISearchDisplayController:

代码语言:javascript
复制
self.searchDisplayController2 = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];
self.searchDisplayController2.delegate = self;
self.searchDisplayController2.searchResultsDelegate = self;
self.searchDisplayController2.searchResultsDataSource = self;

这段代码将在您的View中实现,比如在viewDidLoad中。您还必须在同一个VC中实现至少两个委托函数:

代码语言:javascript
复制
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13349439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档