290 votes

Comment créer un UITextfield multiligne?

Je développe une application où l'utilisateur doit écrire quelques informations. Pour ce faire j'ai besoin d'un UITextField qui est multi-ligne (en général UITextField est une ligne simple).

Comme je googling je trouve une réponse d'utiliser UITextView au lieu de UITextfield à cette fin.

Aucune suggestion?

490voto

h4xxr Points 7470

UITextField est spécifiquement une ligne seulement.

Votre recherche Google est correcte, vous devez utiliser UITextView au lieu de UITextField pour l'affichage et la modification du texte multiligne.

Dans Interface Builder, ajoutez un UITextView où vous le souhaitez et sélectionnez la case "modifiable". Ce sera multiline par défaut.

19voto

Rudi Points 1095

Ok, je l'ai fait avec un truc;) D'abord construire un UITextField et augmenté c'est size comme ceci:

 CGRect frameRect = textField.frame;
        frameRect.size.height = 53;
        textField.frame = frameRect;
 

Ensuite, construisez un UITextView exactement dans la même zone que vous avez fait mon UITextField , et supprimez son background color . Maintenant, il semble que vous ayez plusieurs lignes TextField !

9voto

MonsieurDart Points 3133

Outre le comportement de lignes multiples, la principale différence entre UITextView et UITextField est que UITextView ne propose pas d'espace réservé. Pour contourner cette limitation, vous pouvez utiliser un UITextView avec un "espace réservé faux".

Voir cette question SO pour plus de détails: Placeholder dans UITextView .

2voto

nevan king Points 46410

Oui, un UITextView est ce que vous cherchez. Vous devrez gérer certaines choses différemment (comme la touche de retour) mais vous pouvez y ajouter du texte, et cela vous permettra de faire défiler vers le haut et vers le bas s'il y a trop de texte à l'intérieur.

Ce lien contient des informations sur la création d'un écran pour entrer des données:

créer un écran de saisie de données

2voto

DiscDev Points 8087

Si vous devez avoir un UITextField avec 2 lignes de texte, une option consiste à ajouter un UILabel en tant que sous-vue de UITextField pour la deuxième ligne de texte. J'ai un UITextField dans mon application que les utilisateurs ne réalisent pas souvent est éditable en appuyant sur, et je voulais ajouter un petit texte de sous-titre qui dit "Appuyez sur Modifier" à l'UITextField.

 CGFloat tapLlblHeight = 10;
UILabel *tapEditLbl = [[UILabel alloc] initWithFrame:CGRectMake(20, textField.frame.size.height - tapLlblHeight - 2, 70, tapLlblHeight)];
tapEditLbl.backgroundColor = [UIColor clearColor];
tapEditLbl.textColor = [UIColor whiteColor];
tapEditLbl.text = @"Tap to Edit";

[textField addSubview:tapEditLbl];
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X