2011-02-01 19 views
5

से इस्तीफा नहीं दे रहा है मुझे पूरा बटन क्लिक करने के बाद कीबोर्ड को इस्तीफा देने में समस्या हो रही है। मैं textViewटेक्स्ट में देखें जब मैं किए गए बटन पर क्लिक करता हूं तो कीबोर्ड

-(BOOL)textViewShouldReturn:(UITextView *)textView 
{ 
    if(textView == addressView) 
    { 
     if(isNotif) 
     { 
      [self setViewMovedUp:NO]; 
     } 
     textView.text= [textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
     [addressView resignFirstResponder]; 
    } 
    return YES; 
} 

कर्सर को इस्तीफा देने वाले कीबोर्ड के बजाय टेक्स्ट फ़ील्ड में नई पंक्ति में आ रहा है। कृपया मेरी मदद करें।

धन्यवाद प्रवीण।

+2

ऐसा कोई प्रतिनिधि नहीं है - (BOOL) textViewShouldReturn: (UITextView *) textView – KingofBliss

उत्तर

4

उपयोग निम्नलिखित प्रतिनिधि

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    if (textView == YourTextField){ 
     if ([text isEqualToString:@"\n"]) { 
       [textView resignFirstResponder]; 
       return NO; 
     } 
    } 
    return YES; 
} 

आमतौर पर TextView में वापस कुंजी इसलिए इसकी बेहतर UITextView के शीर्ष और कोड वहाँ इस्तीफा दे दिया कार्य करने के लिए कुछ अन्य बटन जोड़ने के लिए, पाठ करने के लिए \ N जोड़ने के लिए इस्तेमाल होता है ।

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

ऐसा कोई प्रतिनिधि -(BOOL)textViewShouldReturn:(UITextView *)textView

+0

सुनिश्चित करें कि आपने प्रतिनिधि – KingofBliss

+1

सेट किया है यह एक उत्तर है, यह कोड किसी भी चरित्र इनपुट पर कीबोर्ड छुपाता है! –

1

इस होगा अगर ViewController दृश्य पदानुक्रम में इस TextView से ऊपर है कि इस TextView के प्रतिनिधि नहीं है। यदि ऐसा नहीं है तो ViewController को कभी भी टेक्स्ट टेक्स्ट ViewShouldReturn नहीं मिलेगा। दृश्य में नियंत्रक subView (UITextView) के बाद बनाया गया है।

aTextView.delegate = self; 

यकीन है कि यह अपने कार्य और परीक्षण करने के लिए इस जोड़ने बुलाया जा रहा है बनाने के लिए जाँच करने के लिए

NSLog(@"resigning first responder"); 

इस देखने के लिए इस समारोह भी कहा जाता रहा है कि अगर परीक्षण

5

फिक्स्ड KingOfBliss के जवाब:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{  
    if (textView == messageInput) { 
     if ([text isEqualToString:@"\n"]) { 
      [textView resignFirstResponder]; 
      return NO; 
     } 
    } 
    return YES; 
} 
0
if ([text isEqualToString:@"\n"]) { 
     [textView resignFirstResponder]; 
     return NO; 
    } 

मेरे मामले में पर्याप्त था।

+0

जबकि यह कोड स्निपेट प्रश्न हल कर सकता है, [एक स्पष्टीकरण सहित] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और वे लोग आपके कोड सुझाव के कारणों को नहीं जानते हैं। – msrd0

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

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