Iphone 如何使UISearchBar范围栏始终可见?

Iphone 如何使UISearchBar范围栏始终可见?,iphone,ios4,Iphone,Ios4,这是我关于iphonesdk的最新问题 我已经设置了一个UISearchBar及其代理。 此外,当我加载视图时,我会调用 self.searchDisplayController.searchBar.showsScopeBar = YES; 这样,当我的视图第一次出现时,我看到了范围栏,正如预期的那样。 但是,如果在搜索栏内触摸,然后在搜索栏外触摸(或者即使a执行搜索,然后取消搜索),范围栏将再次隐藏 所以我的问题是:有可能让范围栏始终可见吗?即使在执行搜索之后 非常感谢。UISearchDi

这是我关于iphonesdk的最新问题

我已经设置了一个UISearchBar及其代理。 此外,当我加载视图时,我会调用

self.searchDisplayController.searchBar.showsScopeBar = YES;
这样,当我的视图第一次出现时,我看到了范围栏,正如预期的那样。 但是,如果在搜索栏内触摸,然后在搜索栏外触摸(或者即使a执行搜索,然后取消搜索),范围栏将再次隐藏

所以我的问题是:有可能让范围栏始终可见吗?即使在执行搜索之后


非常感谢。

UISearchDisplayController正在为您隐藏范围栏

解决方法是将UISearchBar子类化,并覆盖setShowsScopeBar的实现:

@interface MySearchBar : UISearchBar {

}

@end

@implementation MySearchBar

- (void) setShowsScopeBar:(BOOL) show
{
    [super setShowsScopeBar: YES]; // always show!
}

@end

然后,在Interface Builder中,更改视图中搜索栏的类(与UISearchDisplayController关联)您可能会认为其中一个UISearchDisplayDelegate方法将允许您覆盖范围栏的隐藏,但我在那里尝试的任何方法都不起作用。子类化UISearchBar完成了这项工作。在最初工作时,单击搜索栏然后在iOS7中取消搜索后,范围栏将隐藏。在UISearchDisplayDelegate隐藏范围栏后,我找不到在iOS7中编写代码以重新显示范围栏的方法。你知道怎么走吗?