सबसे पहले के साथ ऐसा कर सकते हैं, (सीखना UIResponder)। संक्षेप में, searchBarSearchButtonClicked(_:) आपको इस कार्य के लिए आवश्यक है।
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
searchBar.resignFirstResponder() // hides the keyboard.
doThingsForSearching()
}
यह काम नहीं करता है की जाँच करें, अपने नियंत्रक UISearchBarDelegate
का पालन करती है और दूसरी, UISearchBarDelegate
अपनी कक्षा कार्यान्वयन के बारे में पता है (यदि आप काफी समझ में नहीं आता कि मैं क्या बात कर रहा हूँ, आप delegation pattern
सीखना चाहिए here पढ़ने के लिए) शुरू करने:
class YourAwesomeViewController: UIViewController, UISearchBarDelegate { // pay attention here
@IBOutlet weak var yourSearchBar: UISearchBar!
override func viewDidLoad() {
super.viewDidLoad()
self.yourSearchBar.delegate = self // and it's important too
}
}
इसके अलावा, यदि आप खोज बटन स्पर्श किए बिना (search bar
के कीबोर्ड छू बाहर छिपाने की आवश्यकता उपयोगकर्ता मई चांग कुछ खोजने के लिए उसका दिमाग), UITapGestureRecognizer इससे निपटने के लिए भी एक आसान तरीका है।
Ctrl-drag
अपने दृश्य नियंत्रक करने के लिए एक Tap Gesture Recognizer
Object Library
से।
Ctrl-drag
हाल ही में Tap Gesture Recognizer
document outline
से स्टोरीबोर्ड में अपने वर्ग कार्यान्वयन के लिए IBAction
के रूप में जोड़ा।
- अंत में, एक कोड लिखने:
@IBAction func tapToHideKeyboard(_ sender: UITapGestureRecognizer) { self.yourSearchBar.resignFirstResponder() }
इसके अलावा, के लिए@IBOutlet
बनाने के लिए मत भूलना खोज कक्षा को आपके वर्ग कार्यान्वयन के अंदर पहुंच प्राप्त करने के लिए।
उपरोक्त दोनों प्रकार मेरे प्रोजेक्ट में अच्छी तरह से काम करते हैं।
आप नीचे दिए गए लिंक में उत्तर मिल सकता है: http://stackoverflow.com/questions/24908966/hide-keyboard-for-text-field-in-swift-programming-language –
मैं कि इतने कोशिश की थी मुझे टेक्स्टफील्ड के लिए अपना कोड मिलता है और यह मेरे जैसा कहता है, लेकिन मुझे कुछ समस्या है जब मुझे सर्चबार का उपयोग करना पड़ता है, क्योंकि जब मैं अपनी सर्चबार के बाहर किसी अन्य क्षेत्र को स्पर्श करता हूं तो मैं अपना कीबोर्ड खारिज नहीं कर सकता – aji