2010-08-28 9 views
5

प्रदर्शित नहीं कर रहा है मैं एक स्कोप बार के साथ UISearchBar प्रदर्शित करने के लिए निम्न कोड का उपयोग करता हूं।UISearchBar स्कोप बार

UISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 45)]; 
searchBar.barStyle = UIBarStyleDefault; 
searchBar.showsCancelButton = NO; 
searchBar.autocorrectionType = UITextAutocorrectionTypeNo; 
searchBar.autocapitalizationType = UITextAutocapitalizationTypeNone; 

searchBar.scopeButtonTitles = [NSArray arrayWithObjects:@"One", @"Two", nil]; 
searchBar.showsScopeBar = YES; 

self.tableView.tableHeaderView = searchBar; 

[searchBar release]; 

हालांकि, स्कोप बार कभी प्रदर्शित नहीं होता है। यह क्यों प्रदर्शित नहीं किया जा रहा है और मैं इसे कैसे ठीक कर सकता हूं?

उत्तर

7

initWithFrame:CGRectMake(0, 0, 320, 45) में, ऊंचाई केवल एक खोज बार की ऊंचाई है, जिसमें स्कोप बार शामिल नहीं है। की तरह कुछ के साथ की जगह का प्रयास करें:

UISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 90)]; 
+0

धन्यवाद बहुत बहुत! बहुत आसन। – Joshua

1
(void) searchDisplayControllerWillBeginSearch:(UISearchDisplayController *) 
controller{ 
    _searchBar.showsScopeBar = YES; 
    [_searchBar sizeToFit]; 
} 
0

आप UISearchDisplayController उपलब्ध नहीं है, तो आप UISearchBarDelegate कॉलबैक का उपयोग करके की कोशिश कर सकते:

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar 
{ 
    self.searchBar.showsScopeBar = YES; 
    [self.searchBar sizeToFit]; 
    return YES; 
} 

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar{ 
    self.searchBar.showsScopeBar = NO; 
    [self.searchBar sizeToFit]; 
}