5

में ग्रे (मंद) पृष्ठभूमि पर टैपिंग का पता लगाने के लिए कैसे मैं एक आईओएस प्रोजेक्ट पर काम कर रहा हूं जहां मैं एक खोज कार्यक्षमता को कार्यान्वित करना चाहता हूं। मैं UISearchBar और UISearchDisplayController का उपयोग कर रहा हूं और मैं UISearchBar को स्पष्ट रूप से छिपाना चाहता हूं। जब उपयोगकर्ता UIBarButtonItem पर टैप करता है, तो खोज बार दिखाई देगी और "बनें फर्स्ट रेस्पॉन्डर", जबकि जब उपयोगकर्ता खोज बार में Cancel बटन पर क्लिक करता है, तो यह गायब होना चाहिए।UISearchDisplayController

उपस्थिति सही ढंग से काम कर रही है, लेकिन मुझे गायब होने में समस्या है। जब उपयोगकर्ता Cancel बटन (searchBarCancelButtonClicked विधि) पर टैप करता है तो मैं खोज बार को छिपाने में कामयाब रहता हूं, लेकिन जब मैं UISearchDisplayController में ग्रे (मंद) पृष्ठभूमि को टैप करता हूं तो मैं खोज बार को छिपाने में असमर्थ हूं। जहां तक ​​मुझे पता है, इस घटना का पता लगाने के लिए कोई विधि नहीं है, इसलिए कुछ हैक लागू करना आवश्यक है। क्या आप किसी को जानते हैं, या ग्रे पृष्ठभूमि पर टैपिंग का पता लगाने का सबसे अच्छा तरीका क्या है?

उत्तर

5

तो मैंने अंत में इसे काम किया है। searchBarCancelButtonClicked:(UISearchBar *)searchBar के अलावा, searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller में खोज बार को छिपाना भी आवश्यक है। ऐसा लगता है कि इस कॉलबैक को तब भी कहा जाता है जब ग्रे (मंद) पृष्ठभूमि को टैप किया जाता है, इसलिए इसे खोज बार को छिपाने के लिए आसानी से उपयोग किया जा सकता है।

+0

आप सर एक प्रतिभाशाली हैं! – pechar

0

UISearchDisplayController में आमतौर पर UISegmentedControl, UIResultsTable और कीबोर्ड शामिल होते हैं। परिणाम तालिका वह जगह है जहां आप इस स्पर्श को खारिज करने के लिए पहचानना चाहते हैं। इसके साथ ही, आप उस दृश्य में एक पारदर्शी UIButton जोड़ सकते हैं जो पहले उत्तरदाता को खारिज कर देता है, या हो सकता है कि आप एक पारदर्शी दृश्य पर UIGestureRecognizer जोड़ सकें जो समान प्रभाव प्राप्त करता है? बस ऊपर से सोचकर और यह खुद की कोशिश नहीं की है, अगर यह आपके लिए काम करता है तो मुझे खुशी है!

+0

मुझे लगता है कि UIResultsTable वह नहीं है जिसे मैं ढूंढ रहा हूं। परिणाम तालिका केवल खोज बार में टाइप करने के बाद प्रदर्शित होती है। इससे पहले, वहां कोई ग्रे पृष्ठभूमि नहीं है, वहां कोई यूआईटीबल व्यू नहीं है। – zvonicek