2011-02-01 23 views
5

Tengo problemas para renunciar al teclado después de hacer clic en el botón de hecho. Estoy usando textViewEn textView cuando hago clic en el botón de hecho el teclado no está renunciando

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

En lugar de renunciar al teclado, el cursor está llegando a una nueva línea en el campo de texto. Por favor, ayúdenme.

Gracias Praveena.

+2

No existe tal delegado - (BOOL) textViewShouldReturn: (UITextView *) textView – KingofBliss

Respuesta

4

Usar la siguiente delegado

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

lo general, en Textview la tecla de retorno es el uso de añadir \ n al texto, así que es mejor añadir un poco de otro botón al principio de la UITextView y el código de la función de renunciar allí .

EDIT:

No hay tal delegado -(BOOL)textViewShouldReturn:(UITextView *)textView

+0

asegúrese de haber configurado el delegado – KingofBliss

+1

cómo es esta una respuesta, ¡este código oculta el teclado en cualquier entrada de carácter! –

1

esto sucederá si el ViewController que está por encima de este Textview en la jerarquía de vista no es el delegado de este Textview. Si no es así, ViewController nunca recibirá el mensaje textViewShouldReturn. En viewController después de que se crea subView (UITextView).

aTextView.delegate = self; 

comprobar para asegurarse de que está recibiendo llamadas añadir esto a su función y prueba

NSLog(@"resigning first responder"); 

Esto pondrá a prueba para ver si esta función aún está recibiendo llamadas

5

fijo respuesta de 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; 
    } 

fue suficiente en mi caso.

+0

Si bien este fragmento de código puede resolver la pregunta, [incluyendo una explicación] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) realmente ayuda a mejorar la calidad de su publicación. Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. – msrd0

Cuestiones relacionadas