这是我对 iPhone SDK 的最新问题。
我已经设置了 UISearchBar 及其委托(delegate)。
另外,当我加载 View 时,我调用
self.searchDisplayController.searchBar.showsScopeBar = YES;
这样,当我的 View 第一次呈现时,我会按预期看到范围栏。
但是如果在搜索栏内部触摸然后在它外面(或者即使执行搜索然后取消它),范围栏会再次隐藏。
所以我的问题是:是否可以让范围栏始终可见?即使在执行搜索之后?
非常感谢。
最佳答案
UISearchDisplayController 为您隐藏了范围栏。
解决这个问题的方法是继承 UISearchBar 并覆盖 setShowsScopeBar 的实现:
@interface MySearchBar : UISearchBar {
}
@end
@implementation MySearchBar
- (void) setShowsScopeBar:(BOOL) show
{
[super setShowsScopeBar: YES]; // always show!
}
@end
然后,在 Interface Builder 中,将 View 中的 Search Bar 的类(与 UISearchDisplayController 关联)更改为新的类类型——在本例中为 MySearchBar。