2011-06-15 13 views
5

जब उपयोगकर्ता बटन पर क्लिक करता है तो मैं कीबोर्ड को कैसे खारिज कर सकता हूं? बेहतर समझने के लिए एक छोटा सा उदाहरण: उपयोगकर्ता कुछ टेक्स्टफील्ड में कुछ टेक्स्ट संपादित करता है और अंत में वह कीबोर्ड पर "पूर्ण" या कुछ और क्लिक नहीं करता है, लेकिन कीबोर्ड के बावजूद वह "सहेजें" बटन पर क्लिक करता है दिखाया गया है। तो, अब मैं कीबोर्ड को कैसे खारिज कर सकता हूं?आईओएस एसडीके: बटन दबाए जाने पर कीबोर्ड को खारिज कर दें?

Thx। जबकि संपादन शुरू कर दिया सादर, बटन कार्रवाई लिखने में डैनियल

उत्तर

4

,

if([textField isFirstResponder]){ 
    [textField resignFirstResponder]; 
} 

अगर वहाँ अधिक textfields हैं वर्तमान पाठ फ़ील्ड संदर्भ हर मिलता है, और बटन कार्रवाई में अपने प्रत्युत्तर इस्तीफा देने।

+0

THX:

स्विफ्ट में, संबंधित दृश्य नियंत्रक में, इस लाइन बटन समारोह में जोड़ने के लिए! इसके अतिरिक्त, जब भी उपयोगकर्ता स्क्रीन पर टैप करता है तो मैं कीबोर्ड को खारिज करना चाहता हूं। मैंने उपयोग किया: UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector (dismisseyeyBoard)]; //[self.view addGestureRecognizer: टैप करें]; लेकिन फिर बटन क्रिया काम नहीं करती है - शायद बटन क्लिक को "रिक्त स्क्रीन" पर टैप के रूप में पहचाना जाता है? –

+0

@Daniel: क्या दृश्य में कोई स्क्रॉलव्यू है? – SriPriya

+0

हाँ, स्क्रॉलव्यू और टेक्स्टव्यू भी। बीटीडब्ल्यू ... क्या यह एक यूस्क्रोलव्यू बनाना संभव है और इसके भीतर दो टेक्स्टव्यू हैं और टेक्स्टव्यू स्वतंत्र रूप से स्क्रॉल करने में सक्षम नहीं होना चाहिए - इसके बजाय केवल यूस्क्रोलव्यू स्क्रॉल किया जाना चाहिए ताकि शेष टेक्स्टव्यू दिखाई दे सकें/दिखाया गया (तो, वे भी स्क्रॉल हो जाते हैं)? –

6

आप पदानुक्रम में टेक्स्ट फ़ील्ड के ऊपर किसी भी दृश्य पर [view endEditing:YES] पर भी कॉल कर सकते हैं। यह उपयोगी है अगर आप सुनिश्चित नहीं हैं कि कौन से टेक्स्ट फ़ील्ड में पहली प्रतिक्रियाकर्ता की स्थिति है। यह वैकल्पिक रूप से एक टेक्स्ट फ़ील्ड प्रतिनिधि को कार्रवाई को रोकता है (NOEndEditing से NO को वापस लौटकर :) जो कि यदि आप फ़ील्ड पर सत्यापन करने के लिए प्रतिनिधि का उपयोग कर रहे हैं तो अच्छा है।

0

श्रीप्रिया के जवाब के अलावा, यहां स्विफ्ट 2 स्टाइल संस्करण है कृपया:

if numberTextField.isFirstResponder() { 
    numberTextField.resignFirstResponder() 
} 

कृपया का आनंद ...

1

आप एक से अधिक पाठ फ़ील्ड है और जो एक पहली है पता नहीं है उत्तरदाता (या जहां भी आप इस कोड को लिख रहे हैं, वहां से टेक्स्ट फ़ील्ड तक पहुंच नहीं है) आप एंड एडिटिंग को कॉल कर सकते हैं: टेक्स्ट फ़ील्ड वाले पैरेंट व्यू पर।

self.view endEditing(true) 
संबंधित मुद्दे