リッチ テキスト エディターにコア テキストを使用しています。ユーザーがテキストの配置を変更できるようにします。
ユーザーが 3 つの単語を入力し、右揃えボタンを選択したとします。ボタンをクリックした後、textAlignment を右に設定して CTParagraphStyle を作成し、その範囲の attributedString を設定して、この段落スタイルを含めます。
問題は、ユーザーが入力中に CoreText が次の行で描画を開始すると、配置が自動的に左揃えに戻ることです。
この段落スタイルを現在の段落の残りの行に拡張するための正しい解決策は何ですか?
NSArray *lines = (NSArray*)CTFrameGetLines(_frame);
NSInteger count = [lines count];
CGPoint *origins = (CGPoint*)malloc(count * sizeof(CGPoint));
CTFrameGetLineOrigins(_frame, CFRangeMake(0, count), origins);
CGContextRef ctx = UIGraphicsGetCurrentContext();
for (int i = 0; i < count; i++) {
CTLineRef line = (CTLineRef)CFArrayGetValueAtIndex((CFArrayRef)lines, i);
CGContextSetTextPosition(ctx, frameRect.origin.x + origins[i].x, frameRect.origin.y + origins[i].y);
CTLineDraw(line, ctx);
}