2009-06-10 11 views
83

यूआईटीक्स्टफिल्ड को संपादित करते समय उपयोगकर्ता ने "रिटर्न" कीबोर्ड बटन दबाए जाने पर कैसे पता लगाया? जब उपयोगकर्ता ने "वापसी" बटन दबाया तो मुझे कीबोर्ड को खारिज करने के लिए ऐसा करने की आवश्यकता है।यूआईटीएक्स्टफिल्ड - कैप्चर रिटर्न बटन इवेंट

धन्यवाद।

- (void)viewDidLoad { 
    [textField addTarget:textField 
        action:@selector(resignFirstResponder) 
     forControlEvents:UIControlEventEditingDidEndOnExit]; 
} 

:

उत्तर

198
- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [textField resignFirstResponder]; 
    return NO; 
} 

मत भूलना स्टोरीबोर्ड में प्रतिनिधि सेट करने के लिए ...

enter image description here

+2

किसी तरह यह सब पर काम नहीं करता। कुंजी दर्ज नहीं किया गया है। – Jonny

+43

सुनिश्चित करें कि आपका व्यू कंट्रोलर टेक्स्टफील्ड के प्रतिनिधि के रूप में सेट है। – zekel

+0

@zekel धन्यवाद यह मेरे लिए काम कर रहा है यह मुझे चाहिए ... – Karthik

37

प्रतिनिधिमंडल की आवश्यकता नहीं है, यहाँ एक एक लाइनर है अफसोस की बात है कि आप सीधे अपने स्टोरीबोर्ड में ऐसा नहीं कर सकते हैं (आप उन कार्यों को जोड़ नहीं सकते जो उन्हें उत्सर्जित करते हैं स्टोरीबोर्ड), लेकिन आप इसे मध्यस्थ कार्रवाई के माध्यम से कर सकते हैं।

+1

अच्छा जवाब !!!!! – souvickcse

+1

मैं बस यह इंगित करना चाहता हूं कि 'UIControlEventEditingDidEndOnExit' ईवेंट केवल तभी भेजा जाता है जब 'textFieldShouldReturn:' प्रतिनिधि विधि YES (टेक्स्ट फ़ील्ड को पूर्ववत किए बिना) लौटाती है। –

+0

प्रतिनिधिमंडल को लागू करने के लिए आपके पास * नहीं है। लेकिन शायद अगर आपको इस विधि के लिए 'हाँ' वापस करना है। – mxcl

-1
- (BOOL)textFieldShouldReturn:(UITextField *)txtField 
{ 
[txtField resignFirstResponder]; 
return NO; 
} 

जब बटन दर्ज करें, तब क्लिक किया जाता है इस प्रतिनिधि विधि called.you इस प्रतिनिधि विधि से लौटने के बटन पर कब्जा कर सकते हैं।

0

स्विफ्ट 3,0

override open func viewDidLoad() { 
    super.viewDidLoad()  
    textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit) 
} 
enterPressed में

() फ़ंक्शन के बाद

func enterPressed(){ 
    //do something with typed text if needed 
    textField.resignFirstResponder() 
} 
0

सभी व्यवहार कर रहे हैं डाल दिया अब आप इस स्टोरीबोर्ड भेजा घटना 'था बाहर निकलें को खत्म हो' उपयोग कर रहा है कर सकते हैं।

आपके विचार नियंत्रक उपवर्ग में:

@IBAction func textFieldDidEndOnExit(textField: UITextField) { 
    textField.resignFirstResponder() 
} 

वांछित पाठ फ़ील्ड के लिए अपने स्टोरीबोर्ड में:

enter image description here

संबंधित मुद्दे