2012-09-27 7 views
11

Devo fare qualcosa di fondamentalmente sbagliato, i miei metodi di implementazione per UITextViewDelegate non sparano. Ho un UITextView che è una sottoview di un UITableCellView e i delegati non vengono chiamati.UITextViewDelegate metodi non vengono chiamati (UITextView all'interno di UITableViewCell)

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

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

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

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

Suggerimenti? Non so se è importante, ma il protocollo è esplicitamente chiamato nella mia dichiarazione @interface.

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

Grazie!

+4

Imposta effettivamente il controller di visualizzazione come delegato della visualizzazione di testo? Qualcosa come 'myTextView.delegate = myDetailViewController' ... – albertamg

+0

NON ho effettivamente impostato il mio controller di visualizzazione come delegato! GRAZIE! – ToddB

+0

@ToddB: aggiungi il seguente codice nel viewdidload [noteTxtView.delegate self]; – Pushkraj

risposta

28

Si dovrebbe aggiungere il textViewObj.delegate = auto o dare connessione delegato per la proprietà di visualizzazione del testo in un file XI ter, allora dovrebbe lavorare e sparare tutti i metodi delegato di UITextView.

+0

Incredibile. Ho dimenticato di impostare il delegato. GRAZIE! – ToddB

4

Coppia di puntatori su questo in base alla mia esperienza:

1) Verificare se si sta utilizzando un'UITextField o un UITextView.

2) In base al tipo di campo di testo che si sta utilizzando aggiungere la seguente dichiarazione alla dichiarazione di interfaccia

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

3) Registrare il controller come delegato per la campo di testo:

[myTextField setDelegate:self]; 

4) sostituire il metodo desiderato che essendo

-(void)textFieldDidBeginEditing:(UITextField *)textField 
       or 
- (void)textViewDidBeginEditing:(UITextView *)textView; 

nel mio caso.

+1

Uomo mi hai salvato la vita !! Mi sono tirato fuori i capelli cercando di far licenziare questo delegato. Poi ho letto il tuo commento 1) sopra. Si scopre che UITextField e UITextView sembrano molto simili quando si è inseguito un bug per ore. – Scooter