2010-11-29 6 views
1

J'ai un écran dans mon application qui se compose uniquement d'un UITextView. Lorsque vous entrez dans cet écran pour la première fois, le clavier n'est pas présent jusqu'à ce que vous tapiez pour modifier. Mais si vous fermez l'écran, puis revenez, le clavier est toujours visible, rappelant probablement son statut d'avant. Je veux qu'il soit parti en rentrant dans la vue.Comment faire disparaître le clavier d'un UITextView?

Des conseils? Je l'ai essayé ce qui suit:

-(void)textViewDidEndEditing:(UITextView *)textView { 
    NSLog (@"end editing"); 
    [textView resignFirstResponder]; 
} 

regardant la console, il ne fait s'appeler lors de la fermeture de cet écran, mais il ne semble pas aider - l'affichage du texte a encore le clavier quand je re-entrer l'écran.

Merci beaucoup

+0

Vous appelez la bonne méthode mais au mauvais endroit. Vous devez placer l'appel à [textView resignFirstResponder] dans la méthode viewWillDisappear de votre contrôleur de vue à la place. –

Répondre

0

En fin de compte, j'ai dû faire en sorte que la vue qui a ouvert cette vue recréé cette vue chaque fois qu'il l'a ouvert pour que le clavier ne réapparaisse pas.

1

Placez toujours vos points de vente à zéro sur:

-(void)viewDidUnload 
{ 
    self.textViewObject = nil; 
} 
+0

Merci pour cela. Cela n'a pas aidé. Je mets une instruction de log dans le viewDidUnload et il n'est pas appelé. Je suppose que c'est parce que ma vue de texte est créée automatiquement, comme je l'ai mis dans une autre plume en tant que contrôleur de vue en utilisant IB. (avoir un sens?) – Chris

-1

essayez de mettre la même chose dans

-(void)viewWillDisappear:(BOOL)animated 

fonction le code va comme ceci

-(void)viewWillDisappear:(BOOL)animated 
{ 
    [self.textViewObject resignFirstResponder]; 
} 

Vous pouvez également spécifier la même chose dans

-(void)viewWillAppear:(BOOL)animated 

fonction ainsi.

Questions connexes