स्क्रीन पर एक कीबोर्ड छिपाने के लिए हमें कुछ आंतरिक कार्यों का उपयोग करने की आवश्यकता है जो आईओएस एसडीके में पूर्वनिर्धारित हैं। जब हम टेक्स्ट फील्ड या टेक्स्ट व्यू में टाइप कर रहे होते हैं तो कीबोर्ड स्क्रीन पर दिखाई देता है। हमें टेक्स्ट फ़ील्ड के अनुसार आंतरिक फ़ंक्शन का उपयोग करने की आवश्यकता है।
उदाहरण के लिए यदि वर्तमान टेक्स्ट फ़ील्ड tfOne है, तो हम नीचे दिए गए कोड का उपयोग करके टेक्स्ट फ़ील्ड को छिपा सकते हैं:
tfOne.resignFirstResponder()
जब कभी कॉल किया जाता है तो यह कोड कीबोर्ड को छुपा देगा, हम इसे एक बटन के लिए या जेस्चर पहचानकर्ता के लिए एक क्रिया पर कॉल कर सकते हैं।
यह विधि सीमित टेक्स्ट फ़ील्ड के लिए अच्छी है, लेकिन यदि हम इसे एकाधिक टेक्स्ट फ़ील्ड या टेक्स्टव्यू के साथ प्राप्त करना चाहते हैं तो हमें इसे बेहतर बनाने की आवश्यकता है।
हम इसके लिए एक फंक्शन बना सकते हैं।
फंक हाइडकीबोर्डव्हेनटैप्डअराउंड() { टैप करें:UITapGestureRecognizer =UITapGestureRecognizer(target:self, action:#selector(UIViewController.dismissKeyboard)) tap.cancelsTouchesInView =false view.addGestureRecognizer(tap)}@objc func खारिज करें। endEditing(true)}
हम अपनी कक्षा में इस फ़ंक्शन का उपयोग कर सकते हैं और जब भी हम किसी टेक्स्ट फ़ील्ड या टेक्स्ट व्यू के बाहर स्क्रीन पर टैप करेंगे तो यह कीबोर्ड को छुपा देगा।
लेकिन जैसा कि आप देख सकते हैं कि इसे एक दृश्य की आवश्यकता है जिस पर इशारा जोड़ा जाएगा, इसलिए हमें इस फ़ंक्शन को UIViewExtension में एम्बेड करने की आवश्यकता है।
<पूर्व>विस्तार UIViewController { func HideKeyboardwhenTappedAround () { टैप करें:UITapGestureRecognizer =UITapGestureRecognizer (लक्ष्य:स्वयं, क्रिया:# चयनकर्ता (UIViewController.dismissKeyboard)) टैप करें। {view.endEditing(true)}}अब हम इस फ़ंक्शन को अपने viewDidLoad() में कॉल कर सकते हैं और फिर जब भी हम टेक्स्ट व्यू/फ़ील्ड को छोड़कर दृश्य में कहीं भी टैप करते हैं, तो कीबोर्ड छुपा होगा।