2010-08-09 11 views
7

आईफोन एसडीके के साथ मेरी नवीनतम समस्या यहां दी गई है।UISearchBar स्कोप बार हमेशा कैसे दिखता है?

मुझे एक यूआईएसearchBar और उसके प्रतिनिधि को स्थापित किया गया है। इसके अलावा, जब मैं अपने दृश्य लोड, मैं

self.searchDisplayController.searchBar.showsScopeBar = YES; 

इस तरह कहते हैं, जब मेरे विचार पहले प्रस्तुत किया है, मैं, गुंजाइश बार देखने की उम्मीद के रूप में। लेकिन यदि खोज बार के अंदर और उसके बाहर स्पर्श करें (या यहां तक ​​कि यदि कोई खोज करता है और फिर इसे रद्द करता है), तो स्कोप बार फिर से छुपाया जाता है।

तो मेरा सवाल यह है: क्या स्कोप बार हमेशा दिखाई दे सकता है? खोज करने के बाद भी?

बहुत बहुत धन्यवाद।

उत्तर

10

UISearchDisplayController आपके लिए स्कोप बार छुपा रहा है।

@interface MySearchBar : UISearchBar { 

} 

@end 

@implementation MySearchBar 

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

@end 

फिर, इंटरफ़ेस बिल्डर में, (जो साथ जुड़ा हुआ है आपकी दृष्टि में खोज बार के वर्ग आप बदलने के लिए:

इस के चारों ओर जिस तरह से UISearchBar उपवर्ग के लिए और ओवरराइड setShowsScopeBar के कार्यान्वयन है UISearchDisplayController) इस श्रेणी में नए वर्ग प्रकार - MySearchBar में।

+0

आपको लगता है कि UISearchDisplayDelegate विधियों में से एक आपको स्कोप बार के छिपाने को ओवरराइड करने की जगह देगा - लेकिन मैंने कोशिश की कि कुछ भी काम नहीं करेगा। UISearchBar subclassing नौकरी करता है। – dodgio

+4

प्रारंभ में यह काम करता है, खोजबार पर क्लिक करने के बाद आईओएस 7 में खोज को रद्द करने के बाद स्कोप बार छुपाया जाता है। UISearchDisplayDelegate के छिपाने के बाद मुझे स्कोप बार को फिर से चलाने के लिए आईओएस 7 में कोड करने का कोई तरीका नहीं मिल रहा है। क्या आप एक तरह से जानते हैं? – msec

संबंधित मुद्दे