2012-09-16 12 views
16

मैं UISearchBar को स्वचालित रूप से एक नई खोज शुरू करने के लिए कैसे मजबूर कर सकता हूं (जैसे खोज बटन दबाकर)? क्या इसे हासिल करने का कोई आसान तरीका है?मैं UISearchBar में प्रोग्राम को प्रोग्रामेटिक रूप से कैसे बल दे सकता हूं?

+0

संभावित डुप्लिकेट [स्वचालित रूप से UISearchBar में टेक्स्ट कर्सर दिखाएं] (http://stackoverflow.com/questions/7441839/automatically-show-text-cursor-in-uisearchbar) – Pascal

+0

कोई डुप्लिकेट नहीं है क्योंकि हम नहीं दिखाना चाहते हैं कीबोर्ड, हम खोज प्रक्रिया शुरू करना चाहते हैं जैसे कि जब आप खोज बटन पर क्लिक करते हैं तो यह किया जाता है। समस्या यह है कि तर्क पुस्तकालय में है जहां हमारे पास पहुंच नहीं है (कोई स्रोत कोड नहीं) – nja

+0

ओह, मैं देखता हूं, यह समझ में आता है। आपको उस जानकारी को तब प्रश्न में रखना चाहिए। ;) – Pascal

उत्तर

1

हां आपको अपने UISearchbarDelegate पर searchBarSearchButtonClicked: पर केवल एक निहित कॉल करने की आवश्यकता है। इस प्रतिनिधि के बारे में अधिक जानकारी के लिए official doc पर एक नज़र डालें।

+0

उत्तर के लिए धन्यवाद, हमें समस्या है कि खोजबार एक ऐसे दृश्य में एम्बेडेड है जहां हमारे पास पहुंच नहीं है और इसलिए यह दृष्टिकोण काम नहीं कर रहा है। क्या आपके पास कोई अन्य संकेत है? – nja

+1

लेकिन कहीं भी आपके कोड में आपको खोज को संभालने के लिए एक प्रतिनिधि वर्ग होना चाहिए - है ना? – tiguero

+0

हमारे पास कोड के उस हिस्से तक पहुंच नहीं है क्योंकि यह उस लाइब्रेरी में लागू किया गया है जिसका उपयोग हम करते हैं जहां हमारे पास स्रोत कोड तक पहुंच नहीं है। हम उस प्रतिनिधि को ढूंढने की कोशिश कर रहे हैं जिसका उपयोग वहां किया जाता है लेकिन हम अब तक सफल नहीं हैं। – nja

5

बस खोज इनपुट फ़ील्ड पहले प्रत्युत्तर हो गए हैं:

[self.searchInputField becomeFirstResponder]; 
+0

उत्तर के लिए धन्यवाद, इस संदर्भ में स्वयं क्या है? – nja

+0

आपकी खोज बार :-) – tiguero

+0

जैसा कि मैंने यह पता लगाया है कि हम खोज बार के टेक्स्ट फ़ील्ड को कैसे एक्सेस कर सकते हैं यह फर्स्ट रेस्पॉन्डर केवल कीबोर्ड प्रदर्शित कर रहा है, लेकिन हम स्वचालित रूप से खोज शुरू करना चाहते हैं – nja

14

मैंने पाया कि मैं खोज फ़ील्ड का मान बदलने के प्रोग्राम के UISearchViewController स्वचालित रूप से खोज प्रदर्शन करने के लिए इससे पहले कि सक्रिय करने के लिए UISearchViewController स्थापित करने के लिए की जरूरत:

// Need to set the searchDisplayController to active to 
// make the changes in search text trigger a search. 
self.searchDisplayController.active = YES; 
self.searchDisplayController.searchBar.text = @"New search string"; 
+0

यह खूबसूरती से काम करता है, और कई अन्य समस्याओं को ठीक करता है, जैसे कि कुछ प्रतिनिधि तरीकों को ट्रिगर नहीं किया जा रहा है। धन्यवाद। – inwit

+0

ध्यान देने योग्य है, आदेश महत्वपूर्ण है :) –

0

गूंगा लगता है, लेकिन काम करता है, तो यह गूंगा नहीं है;)

NSString * forceReload = self.searchDisplayController.searchBar.text; 
self.searchDisplayController.searchBar.text = forceReload; 
0

आप अपने Searchbar मजबूर कर सकते हैं,

उद्देश्य सी:

[self searchBar:yourSearchBarName textDidChange: yourSearchingString]; 

स्विफ्ट 3.0:

self.searchBar(self.yourSearchBarName, textDidChange: yourSearchingString) 

यह आपके Searchbar ट्रिगर किया जाएगा।

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

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