एक और अधिक सुंदर तरीका कीबोर्ड को खारिज करना है जब उपयोगकर्ता कीबोर्ड के फ्रेम के बाहर कहीं टैप करता है।
सबसे पहले, UIBuilder में पहचान निरीक्षक के वर्ग "UIControl" के लिए अपने ViewController के दृश्य को सेट करें। व्यू-कंट्रोलर की हेडर फ़ाइल में नियंत्रण को खींचें और उसे टच अप इनसाइड जैसी घटना के साथ एक क्रिया के रूप में लिंक करें:
ViewController.h
-(IBAction)dismissKeyboardOnTap:(id)sender;
मुख्य ViewController फ़ाइल में, ViewController.m:
-(IBAction)dismissKeyboardOnTap:(id)sender
{
[[self view] endEditing:YES];
}
आपको समान तकनीकों का उपयोग करके एक डबल टैप या लंबे स्पर्श की आवश्यकता हो सकती है। आपको UITextViewDelegate होने के लिए अपना ViewController सेट करने और TextView को ViewController से कनेक्ट करने की आवश्यकता हो सकती है। यह विधि UITextView और UITextField दोनों के लिए काम करती है।
स्रोत: बिग नर्ड रेंच
संपादित करें: मैं यह भी जोड़ना चाहूंगा कि यदि आप UIScrollView का उपयोग कर रहे हैं, तो उपरोक्त तकनीक इंटरफ़ेस धारक के माध्यम से आसानी से काम नहीं कर सकती है। उस स्थिति में, आप एक UIGestureRecognizer का उपयोग कर सकते हैं और इसके बजाय [[आत्म-दृश्य] एंड-एडिटिंग: हाँ] विधि को कॉल कर सकते हैं। एक उदाहरण होगा:
-(void)ViewDidLoad{
....
UITapGestureRecognizer *tapRec = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(tap:)];
[self.view addGestureRecognizer: tapRec];
....
}
-(void)tap:(UITapGestureRecognizer *)tapRec{
[[self view] endEditing: YES];
}
जब उपयोगकर्ता कीबोर्ड के बाहर टैप करता है और प्रवेश स्थान पर टैप नहीं करता है, तो कीबोर्ड खारिज कर देगा।