2

我正在开发一个需要所有文本行对齐的应用程序。该应用程序将在图像顶部显示 2 行文本,从而为图片创建类似广告的感觉。问题是这两行文本都需要对齐,但第二行文本永远不会对齐。或者,如果我分别画两条线,那么两者都没有道理。

如果您kCTJustifiedTextAlignment在 CoreText 或除最后一行之外的所有文本上指定,则为合理的NSJustifiedTextAlignmentNSTextField/View最后一行自然对齐。

有没有办法强制文本字段或文本视图的最后一行是合理的,所以填充视图的宽度?

我曾考虑过使用CTLine单独绘制每条线,并在它们上指定一些内容以使它们都合理,但我也不知道该怎么做。

谢谢

4

1 回答 1

3

感谢 omz 的评论,我偶然发现CTLineCreateJustifiedLine,这正是我想要的。如果有人有使用 Cocoa Control (NSTextView) 的解决方案,我仍然会感兴趣,但如果有任何问题,我会感到惊讶。

CTLineRef line = CTLineCreateWithAttributedString((__bridge CFAttributedStringRef)attString);
line = CTLineCreateJustifiedLine(line, 1.0, dirtyRect.size.width);

CTLineDraw(line, context);
CFRelease(line);
于 2013-07-09T10:33:32.723 回答