UITextView masquer le clavier dans l'iphone
Je veux cacher le clavier lorsqu'un utilisateur appuie sur le retour dans UITextView
objet de l'iphone. Cependant, mystérieusement, ce n'est pas de travail pour UITextView
mais travaillent pour UITextField
. Je n'arrive pas à comprendre pourquoi...
C'est ce que j'ai fait:
1) j'ai créé une vue en fonction de l'application en XCode4.
2).xib créé UITextView
UITextField
et UIButton
objets
3) Marqué à la fois UITextField
et UITextView
délégués à Propriétaire du Fichier dans les points de vente
4) Ajouté <UITextFieldDelegate>
à @interface UIViewController .h
5) ajouter textFieldShouldReturn
fonction dans les .m
Voici les codes:
.h fichier
@interface keyboardDisappearViewController : UIViewController <UITextFieldDelegate>
{
UITextView *textBoxLarge;
UITextField *textBoxLittle;
}
@property (nonatomic, retain) IBOutlet UITextView *textBoxLarge;
@property (nonatomic, retain) IBOutlet UITextField *textBoxLittle;
- (IBAction)doSomething:(id)sender;
@end
.m fichier
- (BOOL) textFieldShouldReturn:(UITextField *)theTextField
{
NSLog(@"textFieldShouldReturn Fired :)");
[textBoxLarge resignFirstResponder];
[textBoxLittle resignFirstResponder];
return YES;
}
Étonnamment, le clavier est en train de disparaître en cas de textBoxLittle (UITextField), mais pas en cas de textBoxLarge(UITextView)
Comme un chèque supplémentaire, je, faites le bouton pour appeler la fonction doSomething
- (IBAction)doSomething:(id)sender {
[textBoxLarge resignFirstResponder];
[textBoxLittle resignFirstResponder];
}
Quand je suis en appuyant sur le bouton, le clavier est en train de disparaître dans les deux zones de texte.
Sa me rend fou pourquoi textFieldShouldReturn travaille pour une petite zone de texte, mais PAS pour la grande zone de texte.
S'Il Vous Plaît Aider!
source d'informationauteur jerrymouse | 2011-07-13
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'écrire du code dans
UITextViewDelegate
et l'attribuer à votre classe.Trois choses:
D'avoir une vue de mettre en œuvre UITextViewDelegate.
Ajoutez la méthode suivante:
Définir le propriétaire du fichier en tant que délégué pour la UITextView dans interface builder.
(BTW: Solution copiés à partir des commentaires pour la réponse précédente, comme il m'a fallu un certain temps à extraire. J'ai bien d'autres pourraient bénéficier de mon expérience.)
Truc Simple
Ensemble
delegate
le texte de la vue, puisaction se connecter à l'ext vue pour
control event didEndOnExit and tuchupinside
//De rejeter la carte clé lorsque l'utilisateur clique sur entrée/retour
Vous avez codé dans le .h fichier:
Il devrait être:
Utiliser ce code
Hériter UITextViewDelegate protocole dans votre Viewcontroller ajouter le texte
Dans le viewDidLoad définir vous-même en tant que délégué:
Mettre en œuvre le délégué de la méthode ci-dessous:
Points Clés
Quelqu'un doit être à l'écoute pour le Retour de la Touche
Quelqu'un doit manuellement fermer le clavier
#1: Créer un UITextFieldDelegate et l'affecter en tant que délégué à votre UITextField -
#2: Ont 'yourUITextFieldDelegate' contenir les éléments suivants -
Si vous êtes venu ici à la recherche de la solution Swift, comme je l'ai fait, vous y êtes 🙂