2012-04-19 13 views
9

पर एक यूआईएनएविगेशनबार बैक बटन पर पुश के बाद कीबोर्ड को कैसे छिपाना है मेरा कीबोर्ड एक टेक्स्ट व्यू के साथ दिखाई देता है, जब मैं नेविगेशन बार पर बैक बटन पर पुश करता हूं तो मैं इसे छिपाना चाहता हूं।आईओएस

-(void)viewWillDisappear:(BOOL)animated{ 

    [myTextView resignFirstResponder]; 
} 

और इस:

मैं इस की कोशिश की है

-(void)viewDidDisappear:(BOOL)animated{ 

    [myTextView resignFirstResponder]; 
} 

लेकिन यह काम नहीं करता, मैं यह कैसे कर सकते हैं?

संपादित करें:

मैंने पाया यहाँ समाधान:

iPad keyboard will not dismiss if modal ViewController presentation style is UIModalPresentationFormSheet

+0

द्वारा किया जाएगा सुनिश्चित करें IBoutlets सही ढंग से आबद्ध कर रहे हैं और viewDid/WillDisappear NSLog बयान देकर कहा जा रहा है –

+0

तुम भी नहीं होना चाहिए खुद को पहले उत्तरदाता इस्तीफा देने के लिए। जब दृश्य स्क्रीन से आता है तो इसे स्वचालित रूप से इस्तीफा देना चाहिए और कीबोर्ड गायब हो जाना चाहिए। आप "मास्टर-विस्तार आवेदन" टेम्पलेट के साथ आईफोन के लिए एक नई परियोजना बनाकर इस व्यवहार का परीक्षण कर सकते हैं। स्टोरीबोर्ड खोलें और विस्तार स्क्रीन पर जाएं। दृश्य में 'UITextField' जोड़ें और ऐप चलाएं। जब आप फ़ील्ड में टैप करते हैं, तो कीबोर्ड दिखाई देता है और जब आप नेविगेशन बार पर बैक बटन दबाते हैं तो यह गायब हो जाता है। – DBD

+0

सच है, लेकिन जब मैं बटन पर धक्का देता हूं तो मामला आ जाता है, एक मोडल फॉर्म शीट एक यूएनएविगेशन कंट्रोलर के साथ दिखाई देती है, मैं दूसरे बटन पर नेविगेट करता हूं जो एक और दृश्य में नेविगेट करता है, मैं एक टेक्स्ट व्यू में दबाता हूं, कीबोर्ड दिखाई देता है, मैं वापस जाता हूं पिछला दृश्य नियंत्रक और कीबार्ड अभी भी मौजूद है। – Anthony

उत्तर

17

buttonPress विधि में इस रखो -

[self.view.window endEditing:YES]; 

संपादित करें - इसे भी आप की सामग्री को प्राप्त करने देता है टेक्स्ट को संपादित किया जा रहा है जब "बैक" बटन दबाया जाता है

+0

इसके लिए आपको डिफॉल्ट बाएं नेविगेशन बारबटन आइटम –

+0

ओवरराइड करना है - मुझे पता है - – SomaMan

+0

यह बहुत सीधे आगे है यह मेरे लिए काम करता है ... – iSwaroop

2

ऊपर जवाब का मेल और वापस बटन के लिए जाँच इस

- (void)viewWillDisappear:(BOOL)animated{ 
if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) { 
    // back button was pressed. We know this is true because self is no longer 
    // in the navigation stack. 
    [self.view.window endEditing:YES]; 
} 

[super viewWillDisappear:animated]; 

}