UISearchBar的范围按钮不会显示iOS6

Fah*_*mov 0 iphone objective-c ios ios6

我知道之前曾多次询问过这个问题,并且已经解决了(在我使用iOS4和5的解决方案之前).我最近的项目涉及使用UISearchBar其他一些视图,我想在它变为活动状态时显示它的范围按钮.之前,在UISearchBardelegate- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar我在做什么

[searchBar setShowsScopeBar:YES];
[searchBar sizeToFit];
Run Code Online (Sandbox Code Playgroud)

它显示了范围按钮.但现在,在iOS6上,这段代码什么也没做.UISearchBar在IB中添加,它的委托被设置为我的视图控制器.有人解决这个问题吗?提前致谢.

Dav*_*ong 7

看起来正在发生的事情是,UISearchBar当它显示并隐藏范围栏时,它无法使其内在内容大小无效.

直到在UIKit中修复它,通过简单的子类化UISearchBar和覆盖单个方法来解决它是非常容易的:

- (void)setShowsScopeBar:(BOOL)showsScopeBar {
  if ([self showsScopeBar] != showsScopeBar) {
    [self invalidateIntrinsicContentSize];
  }
  [super setShowsScopeBar:showsScopeBar];
}
Run Code Online (Sandbox Code Playgroud)