如何让UISearchBar范围栏始终可见?

时间:2010-08-09 23:19:25

标签: iphone ios4

这是我最新的iPhone SDK问题。

我有一个UISearchBar,它的代表都已设置完毕。 另外,当我加载视图时,我会调用

self.searchDisplayController.searchBar.showsScopeBar = YES;

这样,当我的视图首次出现时,我会看到范围栏,正如预期的那样。 但是如果触摸搜索栏内部然后触摸它(或者即使执行搜索然后取消它),范围栏也会再次隐藏。

所以我的问题是:是否可以让范围栏始终可见?甚至在进行搜索后?

非常感谢。

1 个答案:

答案 0 :(得分:10)

UISearchDisplayController正在隐藏范围栏。

解决这个问题的方法是继承UISearchBar并覆盖setShowsScopeBar的实现:

@interface MySearchBar : UISearchBar {

}

@end

@implementation MySearchBar

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

@end

然后,在Interface Builder中,将视图中的搜索栏(与UISearchDisplayController相关联)的类更改为新类类型 - 在此示例中为MySearchBar。