2010-11-18 3 views
3

J'ai besoin de casser une chaîne de caractères de façon à ce que chacun ne dépasse pas le nombre maximal de caractères par ligne. Je ne peux pas juste casser le caractère Nième parce que je ne veux pas casser au milieu d'un mot. L'application est internationalisée, donc comme la limite de texte est sensible aux paramètres régionaux, je ne peux pas simplement intervenir.Rupture de ligne iPhone avec i18n

Y a-t-il quelque chose à faire dans l'API Cocoa? J'utilise OpenGLES, le rendu du texte avec des textures, donc les composants de l'interface utilisateur qui gèrent cela n'aideront pas.

Merci

Répondre

0

Utilisez NSString - substringFromIndex :, - substringWithRange :, - substringToIndex :.

Les index de ces méthodes se réfèrent à des caractères symboliques, pas à des octets physiques.

http://developer.apple.com/library/ios/#documentation/cocoa/reference/foundation/Classes/NSString_Class/Reference/NSString.html

+0

Le problème est de savoir comment savoir quel indice cassera dans une limite de texte pour les paramètres régionaux en cours? – fbafelipe

+0

Oh, alors ta peur est que '' ne suffit pas. [NSCharacterSet whitespaceAndNewlineCharacterSet] semble fonctionner correctement. – cadabra

+1

Cela retournera un ensemble contenant un espace ('') et un retour à la ligne ('\ n'). Le problème est que toutes les locales n'utilisent pas un espace pour casser les lignes, en fait, certaines locales n'utilisent même pas les espaces (http://xml.ascc.net/en/utf-8/faq/zhl10n-faq-xsl.html# qb2), certaines plates-formes (telles que Java, http://download.oracle.com/javase/tutorial/i18n/text/boundaryintro.html) fournissent des moyens de déterminer les limites de texte pour les paramètres régionaux actuels, de sorte que je n'ai pas à codez toutes les règles pour toutes les langues. Ma question est de savoir si le cacao a quelque chose de similaire. – fbafelipe

Questions connexes