टेक्स्टफ़ील्ड में क्लिक करने से कीबोर्ड दिखाई देता है। जब उपयोगकर्ता रिटर्न कुंजी दबाता है तो मैं इसे कैसे छिपा सकता हूं?
टेक्स्टफ़ील्ड में क्लिक करने से कीबोर्ड दिखाई देता है। जब उपयोगकर्ता रिटर्न कुंजी दबाता है तो मैं इसे कैसे छिपा सकता हूं?
जवाबों:
सबसे पहले अपनी फाइल को UITextField के लिए प्रतिनिधि बनाएं
@interface MYLoginViewController () <UITextFieldDelegate>
@end
फिर इस विधि को अपने कोड में जोड़ें।
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
भी जोड़ दें self.textField.delegate = self;
में viewDidLoad
घोषित:
[yourTextField setDelegate:self];
फिर, प्रतिनिधि पद्धति के ओवरराइड को शामिल करें:
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
setDelegate:
अनुस्मारक के लिए +1 । निश्चित रूप से भूल गया था और कोड पहले काम नहीं कर रहा था।
स्विफ्ट में यह कोशिश करो ,
चरण 1: प्रतिनिधि को स्वयं के रूप में सेट करेंtextField
textField.delegate = self
चरण 2: अपनी कक्षा घोषणा के नीचे इस UITextFieldDelegate जोड़ें,
extension YourClassName: UITextFieldDelegate {
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
}
तेजी से इस तरह से करें:
सबसे पहले अपने ViewController
कार्यान्वयन में यह UITextFieldDelegate
उदाहरण के लिए।
class MyViewController: UIViewController, UITextFieldDelegate {
....
}
अब एक डेलीगेट को उसमें जोड़ें TextField
जिसमें आप कीबोर्ड को खारिज करना चाहते हैं जब वापसी या तो viewDidLoad
नीचे की तरह विधि में टैप की जाती है या जहां आप इसे प्रारंभ कर रहे हैं। उदाहरण के लिए।
override func viewDidLoad() {
super.viewDidLoad()
myTextField.delegate = self
}
अब इस विधि को जोड़ें।
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
इसे इस्तेमाल करे,
[textField setDelegate: self];
फिर, TextField प्रतिनिधि विधि में
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
उस विधि में से UITextField
, और ओवर राइड, textFieldShouldReturn
विधि का प्रतिनिधि सेट करें , केवल दो पंक्तियों के बाद लिखें:
[textField resignFirstResponder];
return YES;
बस। एक कोड लिखने से पहले UITextField
गुण विंडो से "पूरा" करने के लिए एक प्रतिनिधि और सेट कुंजी प्रकार सेट करने के लिए मत भूलना । (कमांड + शिफ्ट + 1)।
आप "प्राइमरी एक्शन ट्रिगर" (UITextField पर राइट क्लिक) को IBAction से जोड़ सकते हैं और आप पहले उत्तरदाता (प्रतिनिधिमंडल के बिना) इस्तीफा दे सकते हैं। उदाहरण (स्विफ्ट 4):
@IBAction func textFieldPrimaryAction(_ sender: UITextField) {
sender.resignFirstResponder()
...
}
UITextField
दृश्य नियंत्रक में प्रतिनिधि सेट करें field.delegate = self
, और फिर:
extension ViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
// don't force `endEditing` if you want to be asked for resigning
// also return real flow value, not strict, like: true / false
return textField.endEditing(false)
}
}
यदि आप किसी विशेष कीबोर्ड उपयोग के लिए कीबोर्ड [self.view resignFirstResponder];
को छिपाना चाहते हैं,
यदि आप किसी कीबोर्ड को दृश्य उपयोग से छुपाना चाहते हैं[self.view endEditing:true];
ठीक है, मुझे लगता है कि एक नौसिखिया चीजों के लिए थोड़ा भ्रमित हो सकता है। मुझे लगता है कि सही उत्तर उपरोक्त सभी का मिश्रण है, कम से कम स्विफ्ट 4 में।
या तो एक एक्सटेंशन बनाएं या ViewController का उपयोग करें जिसमें आप इसका उपयोग करना चाहते हैं लेकिन UITextFieldDelegate को लागू करना सुनिश्चित करें। पुन: प्रयोज्य के लिए मुझे एक एक्सटेंशन का उपयोग करना आसान लगा:
extension UIViewController : UITextFieldDelegate {
...
}
लेकिन वैकल्पिक काम भी करता है:
class MyViewController: UIViewController {
...
}
विधि टेक्स्ट जोड़ें। ShouldReturn (आपके पिछले विकल्प के आधार पर, या तो एक्सटेंशन में या आपके ViewController में)
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
return textField.endEditing(false)
}
अपने व्यूडलॉड विधि में, टेक्स्टफील्ड के प्रतिनिधि को स्वयं सेट करें
@IBOutlet weak var myTextField: UITextField!
...
override func viewDidLoad() {
..
myTextField.delegte = self;
..
}
वह सब होना चाहिए। अब, जब आप दबाते हैं return
तो textFieldShouldReturn
बुलाया जाना चाहिए।
इस वर्ग को परिभाषित करें और फिर कक्षा का उपयोग करने के लिए अपने पाठ क्षेत्र को सेट करें और जब रिटर्न स्वचालित रूप से दबाया जाता है तो यह पूरे छिपने वाले कीबोर्ड को स्वचालित करता है।
class TextFieldWithReturn: UITextField, UITextFieldDelegate
{
required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
self.delegate = self
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool
{
textField.resignFirstResponder()
return true
}
}
तब स्टोरीबोर्ड में आपको बस कक्षा का उपयोग करने के लिए फ़ील्ड सेट करना होगा: