2010-11-18 5 views
3

1行あたりの最大文字数を超えないように、行内の文字列を分割する必要があります。私は単語の真ん中で壊れたくないので、N番目の文字を壊すことはできません。 アプリケーションが国際化されているので、テキストの境界がロケールに敏感なので、私はちょうど ''に入ることはできません。i18nを使ったiPhoneの改行

Cocoa APIでこれを行うのに役立つことはありますか?

私はOpenGLESを使用しており、テキストをテクスチャでレンダリングしているため、それを処理するUIコンポーネントは役に立ちません。

おかげ

答えて

0

利用のNSString - substringFromIndex :, - substringWithRange :, - substringToIndex :.

これらのメソッドのインデックスは、物理バイトではなく記号文字を参照します。

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

+0

問題はどのように現在のロケール用のテキスト境界に壊れるどの指標を知っているのですか? – fbafelipe

+0

ああ、あなたの恐れは十分ではないということです。 [NSCharacterSet whitespaceAndNewlineCharacterSet]はうまくいくはずです。 – cadabra

+1

これは、空白( '')と改行( '\ n')を含むセットを返します。問題は、すべてのロケールが空白を使用して行を分割するわけではなく、実際にはロケールによっては空白も使用されないことです(http://xml.ascc.net/en/utf-8/faq/zhl10n-faq-xsl.html# qb2)、Java(http://download.oracle.com/javase/tutorial/i18n/text/boundaryintro.html)などのプラットフォームによっては、現在のロケールのテキスト境界を判別する方法が提供されているため、すべての言語のすべての規則を記述します。私の質問は、ココアに似たものがあるかどうかです。 – fbafelipe

関連する問題