1

排序问题:有没有办法将 a 中的“取消”按钮文本更改UISearchDisplayController为“完成”或“关闭”?

理由:

我有一个 UITableView包含选项列表的选项,可以选中或取消选中每个选项。

我想通过这些选项启用搜索,所以我创建并添加了一个UISearchDisplayController.

用户将搜索一个项目,然后对搜索结果中的项目执行操作(即选择/取消选择某些项目)。

完成此操作后,用户将返回到先前(未搜索)的选项列表。

问题是,解除它的唯一方法UISearchDisplayController是按下“取消”按钮。但是,“取消”在这里是错误的词,因为在搜索栏中执行的操作将被存储。

因此,有没有办法将“取消”按钮文本更改为“完成”或“关闭”?

4

1 回答 1

0

我找到了一种方法,在搜索栏的委托中,创建一个空动画,然后在一小段时间后,更改按钮上的内容,这可能是因为取消按钮在委托被调用后不久的某个时间动画,因此你不能在此之前抓住它并改变它:

-(void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController*)controller {
[UIView
     animateWithDuration:0.05 animations:^{} completion:^(BOOL finished){

        for (UIView *possibleButton in controller.searchBar.subviews)
        {
            if ([possibleButton isKindOfClass:[UIButton class]])
            {
                UIButton *cancelButton = (UIButton*)possibleButton;

                //TODO:
                // do things with button here...
            }
        }
     }
     ];
}
于 2011-05-02T08:30:51.073 回答