iPhone - 更改UISearchDisplayController“取消”按钮文本

时间:2010-09-10 15:15:18

标签: iphone uibutton uisearchdisplaycontroller

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

理由:

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

我想启用搜索这些选项,因此我创建并添加了UISearchDisplayController

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

完成此操作后,用户将返回上一个(未搜索的)选项列表。

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

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

1 个答案:

答案 0 :(得分: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...
            }
        }
     }
     ];
}