2012-03-07 14 views
5

मैं एक UISearchViewController का उपयोग थोड़ा गैर पारंपरिक तरीके से कर रहा हूं।प्री-सेट टर्म के साथ UISearchDisplayController को कैसे सक्रिय करें?

मेरा यूआईएसearchBar प्रारंभ में छिपा हुआ है। जब उपयोगकर्ता एक बटन टैप करता है तो मैं UISearchBar को अनदेखा करता हूं और UISearchViewController को सक्रिय करता हूं। मैंने सर्चबार का टेक्स्ट भी सेट किया है, और सर्चबार को पहले उत्तरदाता बनने के लिए कहा है।

समस्या यह है कि ग्रे UISearchDisplayController द्वारा बनाई ओवरले दिखाई देती रहती है है। यह तब तक नहीं जाता जब तक कि मेरे द्वारा प्रीसेट किए गए पाठ को साफ़ नहीं किया जाता है, और उपयोगकर्ता फिर से टाइप करना शुरू कर देता है।

self.searchDisplayController.searchBar.hidden = NO; 
    self.searchDisplayController.searchBar.text = @"term"; 
    [self.searchDisplayController.searchBar becomeFirstResponder]; // this actually appears to activate everything 
    [self.searchDisplayController setActive: YES animated: YES]; // this activates but does not set the searchbar to 1st responder... 

क्यों UISearchDisplayController यह ग्रे ओवरले दिखाने के लिए जारी रखने के लिए होता है, और मैं उसे कैसे साफ करते हैं?

उत्तर

12

कॉल के क्रम को बदलना चाल करना प्रतीत होता था। यकीन नहीं है कि क्यों।

[self.searchDisplayController setActive: YES animated: YES]; 
self.searchDisplayController.searchBar.hidden = NO; 
self.searchDisplayController.searchBar.text = @"term"; 
[self.searchDisplayController.searchBar becomeFirstResponder]; 
+1

टिप के लिए धन्यवाद, मेरे पास एक ही समस्या थी। Stil को एक समस्या मिली हालांकि: मैं खोज नहीं कर सकता ResultsTableView तब दिखाई देता है जब टेक्स्ट खाली होता है, मुझे स्वयं करना होगा। खोज DisplayController.searchBar.text = @ "" जो थोड़ा हैकी है .. अगर किसी के पास बेहतर सुझाव है तो कृपया मुझे पता है! यह संभव होना चाहिए क्योंकि मोबाइल सफारी में Google खोज बिल्कुल वही काम करती है। – nmondollot

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