2012-09-27 15 views
11

Debo estar haciendo algo fundamentalmente incorrecto, mis métodos de implementación para el UITextViewDelegate no se activan. Tengo una UITextView que es una subvista de una UITableCellView y los delegados no están siendo llamados.No se están llamando a los métodos UITextViewDelegate (UITextView dentro de UITableViewCell)

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

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

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

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

Sugerencias? No sé si importa, pero el protocolo se menciona explícitamente en mi declaración @interface.

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

Gracias!

+4

¿De verdad configura su controlador de vista como el delegado de la vista de texto? Algo como 'myTextView.delegate = myDetailViewController' ... – albertamg

+0

¡NO configuré mi controlador de vista como el delegado! ¡GRACIAS! – ToddB

+0

@ToddB: Agregue el siguiente código en viewdidload [noteTxtView.delegate self]; – Pushkraj

Respuesta

28

Debe agregar el textViewObj.delegate = auto o delegar la conexión para esa propiedad de vista de texto en el archivo xib, luego debería funcionar y desencadenar todos los métodos de delegado de UITextView.

+0

Increíble. Olvidé configurar el delegado. ¡GRACIAS! – ToddB

4

par de punteros en esta basado en mi experiencia:

1) Compruebe si está utilizando un UITextField o una UITextView.

2) Basado en el tipo de campo de texto que está utilizando añadir la siguiente declaración a su declaración de interfaz

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

3) Registre su controlador como el delegado para su campo de texto:

[myTextField setDelegate:self]; 

4) reemplazar el método deseado que ser

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

en mi caso.

+1

¡Hombre, has salvado mi vida! He estado tirando de mi cabello tratando de hacer que este delegado dispare. Luego leo tu comentario 1) arriba. Resulta que UITextField y UITextView se parecen mucho cuando has estado persiguiendo un error durante horas. – Scooter

Cuestiones relacionadas