2012-03-13 10 views
0

私はコアテキストを初めて使用しています。 NSAttributedStringの特定のNSRangeが複数の行(CTLine)にあるかどうかを調べる方法はありますか?NSRange用の複数のCTLine

NSAttributedStringを設定してから、その文字列でフレームセッターを作成しています。文字列は長さが変わる可能性があります。範囲(つまり、フレーズ)が複数の行にあるかどうかを調べる方法は不思議です。それは可変長の文字列であるため、できれば各行を設定しないでください。

ありがとうございます!

答えて

1

だから、行のを取得するために、以下の機能を使用する必要があります。

あなたはframesetterからCTFrameRefを取得したら、あなたが呼び出す必要があります:

CFArrayRef lines = CTFrameGetLines (frame); 

を、その後どのように多くの行を参照してください配列内の行を数え、があります。

CFIndex numLines = CFArrayGetCount(lines); 

使用、ライン(この場合はライン0)で(元の文字列から)文字の正確な範囲を知っておく必要がある場合:

CFRange range = CTLineGetStringRange(CFArrayGetValueAtIndex(lines, 0)); 
関連する問題