1

我有一堆搜索框。在搜索框下有表格视图。

如果用户单击表格视图(或搜索框外的任何内容),我希望搜索框失去第一响应者状态。

但是,tableview 没有修饰动作。

所以我在 tableview 后面添加了一个大按钮。希望触摸事件由大按钮处理。

鉴于 table view 完全覆盖了 tableview,这是行不通的。

所以我该怎么做?

4

1 回答 1

1

我不确定您是使用 searchDisplayController 还是仅使用 searchBar。但如果你使用 searchDisplayController,你可以实现委托方法

-(void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller

当用户单击取消或透明视图(空搜索)时将调用它。

解决您的案例的另一种方法是设置 bool 以检查搜索框是否正在保留响应者(在搜索获取响应者时设置它)。在 cellForRowAtIndexPath 处,检查该值是否,然后 resignFirstResponder 并将值设置为 false。

希望这有帮助

更新:Apple使用 searchDisplayController的示例代码

于 2011-08-03T00:57:57.653 回答