La limitation de texte dans un UITextView
Je suis en train d'essayer de limiter la saisie de texte dans un UITextView cacao-touch. J'ai vraiment envie de limiter le nombre de lignes plutôt que le nombre de caractères. Pour l'instant j'ai ceci à compter le nombre de lignes:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
rows++;
}
NSLog(@"Rows: %i", rows);
return YES;
}
Cependant cela ne fonctionne pas si la ligne est automatiquement enveloppé plutôt que de l'utilisateur en appuyant sur la touche retour. Est-il un moyen de vérifier si le texte a été enveloppé similaire à la vérification de "\n"?
Grâce.
Vous devez vous connecter pour publier un commentaire.
Malheureusement, à l'aide de NSString -stringWithFont:forWidth:lineBreakMode: ne fonctionne pas - ce qui a jamais enrouler le mode que vous choisissez, le texte passe à la ligne avec une largeur qui est inférieure à la largeur, et la hauteur devient 0 sur tout débordement de lignes. Pour obtenir une vraie figure, fit la chaîne dans un cadre qui est plus grand que celui que vous avez besoin, alors vous aurez une hauteur supérieure à votre taille.
Remarque mon fudge dans ce (soustraction de 15 à partir de la largeur). Cela peut être quelque chose à faire avec mon point de vue (j'en ai un dans l'autre), de sorte que vous pourriez ne pas en avoir besoin.
textContainerInset
ettextContainer.lineFragmentPadding
. Voir UITextView de référence