2012-09-27 8 views
11

मुझे कुछ मौलिक रूप से गलत करना होगा, UITextViewDelegate के लिए मेरे कार्यान्वयन विधियां फायरिंग नहीं कर रही हैं। मेरे पास UITextView है जो UITableCellView का एक सबव्यूव है और प्रतिनिधियों को नहीं कहा जा रहा है।UITextViewDelegate विधियों को नहीं बुलाया जा रहा है (UITextViewCiew के भीतर UITextView)

- (void)textViewDidBeginEditing:(UITextView *)textView { 

    NSLog(@"textViewDidBeginEditing"); 
    // never called... 
} 

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 

    NSLog(@"shouldChangeTextInRange"); 
    // never called... 
} 

सुझाव? मुझे नहीं पता कि यह महत्वपूर्ण है, लेकिन प्रोटोकॉल स्पष्ट रूप से मेरे @interface घोषणा में नामित है।

@interface DetailViewController() <UITextViewDelgate, ..., ....> 

धन्यवाद!

+4

क्या आप वास्तव में टेक्स्ट व्यू के प्रतिनिधि के रूप में अपना व्यू कंट्रोलर सेट करते हैं? कुछ 'myTextView.delegate = myDetailViewController' ... – albertamg

+0

मैंने वास्तव में प्रतिनिधि के रूप में अपना व्यू कंट्रोलर सेट नहीं किया था! धन्यवाद! – ToddB

+0

@ToddB: viewdidload [noteTxtView.delegate self] में निम्न कोड जोड़ें; – Pushkraj

उत्तर

28

आप textViewObj.delegate = आत्म जोड़ना चाहिए या xib फ़ाइल में है कि पाठ दृश्य संपत्ति के लिए प्रतिनिधि कनेक्शन दे, तो यह काम करते हैं और UITextView के सभी प्रतिनिधि तरीकों सक्रिय होना चाहिए।

+0

कमाल। मैं प्रतिनिधि को सेट करना भूल गया। धन्यवाद! – ToddB

4

इस पर संकेत दिए गए मेरे अनुभव के आधार पर की युगल: क्या आप एक UITextField या एक UITextView का उपयोग कर रहे

1) की जाँच करें।

2) पाठ क्षेत्र के प्रकार आप) अपने इंटरफेस घोषणा

@interface MyInterface : UIViewController<UITextFieldDelegate> 
         or 
@interface MyInterface : UIViewController<UITextViewDelegate> 

3 के लिए निम्न घोषणा जोड़ने अपने पाठ क्षेत्र के लिए प्रतिनिधि के रूप में अपने नियंत्रक रजिस्टर का उपयोग कर रहे के आधार पर:

[myTextField setDelegate:self]; 

4) वांछित विधि है जो किया जा रहा है

-(void)textFieldDidBeginEditing:(UITextField *)textField 
       or 
- (void)textViewDidBeginEditing:(UITextView *)textView; 
मेरे मामले में

ओवरराइड।

+1

मैन आपने मेरा जीवन बचाया !! मैं इस प्रतिनिधि को आग में लाने की कोशिश कर अपने बालों को खींच रहा हूं। फिर मैंने आपकी टिप्पणी 1) ऊपर पढ़ी। यह पता चला है कि जब आप घंटों के लिए एक बग का पीछा कर रहे हैं तो UITextField और UITextView बहुत समान दिखते हैं। – Scooter

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