2010-12-17 14 views
11

क्या टेक्स्टफील्ड/व्यू/इत्यादि कॉल किए बिना कीबोर्ड को छिपाने के लिए सामान्य resignFirstResponder करने का कोई तरीका है?आईपैड बिना किसी टेक्स्टफील्ड को खोला गया यह जानने के बिना कीबोर्ड को खारिज कर दिया

कारण मेरे पास मेरे दृश्य पर बहुत से टेक्स्टफील्ड हैं और कीबोर्ड को छिपाने के लिए सभी टेक्स्टफील्ड के लिए resignFirstResponder नहीं करना चाहते हैं। बस एक सामान्य

[self resignFirstResponder] चाहते हैं।

कोई विचार?

-(void)dismissKeyboard { 
    [firstField becomeFirstResponder]; 
    [firstField resignFirstResponder]; 
} 

उत्तर

3

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

मुझे लगता है कि एक प्रोग्रामर के रूप में, आप स्पष्ट ज्ञान कितने पाठ फ़ील्ड आपके विचार नियंत्रक और आप उन्हें कैसे उपयोग कर सकते हैं कर रहे हैं होना चाहिए, अन्यथा यह में गड़बड़ कर दिया जाएगा और आप इस ऐप्लिकेशन अच्छे लग नहीं होगा .. :-P

1

मेरे अपने ऐप्लिकेशन में जब मैं और अधिक था:

अग्रिम

19

मुझे पता है कि इसे पहले से ही उत्तर के रूप में चिह्नित किया गया है, लेकिन जो लोग इस तरह से चलते हैं उनके लिए आप केवल निम्नलिखित विधि का उपयोग कर सकते हैं जिसमें टेक्स्टफील्ड शामिल हैं।

- (BOOL)endEditing:(BOOL)force 

इस विधि वर्तमान दृश्य और पाठ क्षेत्र वर्तमान में पहले प्रत्युत्तर है कि के लिए अपने subview पदानुक्रम पर लग रहा है। यदि यह एक पाता है, तो यह पूछता है कि टेक्स्ट फ़ील्ड को पहले उत्तरदाता के रूप में इस्तीफा देना है। यदि बल पैरामीटर YES पर सेट है, तो टेक्स्ट फ़ील्ड कभी भी नहीं पूछा जाता है; इसे इस्तीफा देने के लिए मजबूर किया जाता है। UIView Documentation

[self.view endEditing:YES]; 

यह जब हम दृश्य पर क्लिक करें कुंजीपटल छुपा देगा।

+2

यह @ जुमिन के –

1

आपको इन प्रश्नों की जांच कर सकते हैं:

सारांश में: आप कुछ अन्य बात यह है कि आप चुनते हैं पर becomeFirstResponder कॉल कर सकते हैं। यह एक UIViewController या UIView हो सकता है। मुझे पहले भी इसी तरह की समस्या थी, जब मैं अपने व्यू कंट्रोलर को अपने कॉलर पर वापस दबा रहा था, तो मुझे अपने कीबोर्ड को दूर करने की ज़रूरत थी, यह जानने के बिना कि कौन सा टेक्स्टफील्ड पहला उत्तरदाता था। फिर, मेरे दृश्य नियंत्रक के विल्लएपियर पर जो मैं वापस लौट रहा था, मैंने [स्वयं बनने के लिए फर्स्ट रेस्पॉन्डर] कहा और धक्का दृश्य का कीबोर्ड चला गया। क्योंकि यह बनाया जो भी पाठ क्षेत्र में यह ढीला था पहले प्रत्युत्तर

5

आप नीचे दिए गए कोड की मदद से UITextfield/UITextView के लिए किसी भी संदर्भ के बिना कुंजीपटल खारिज कर सकते हैं किया जा रहा है:

[[[UIApplication sharedApplication] keyWindow] endEditing:YES]; 

इस के बिना विश्व स्तर पर कीबोर्ड ख़ारिज होगा संदर्भ।

आशा है कि यह आपकी मदद करेगा।

+1

की तुलना में यह एक बेहतर जवाब है धन्यवाद, यह हर मामले के लिए काम करता है (UITableViewController सहित) – marcelosalloum

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

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