我们可以改变nextResponder吗?

时间:2011-07-19 09:00:28

标签: objective-c xcode first-responder

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

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

但是,tableview没有修饰操作。

所以我在tableview后面添加一个大按钮。希望通过大按钮处理修饰事件。

鉴于表格视图完全覆盖了tableview,这不起作用。

那我该怎么办?

1 个答案:

答案 0 :(得分:1)

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

-(void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
用户点击取消或透明视图(空搜索)时将调用

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

希望这个帮助

更新:Apple的sample code使用searchDisplayController