我正在开发一个应用程序,我需要将所有文本行对齐。该应用程序将在图像的顶部显示2行文本,创建一个像图片的感觉广告。问题是这两行文本都需要证明是合理的,但第二行文本永远不会被证明是合理的。或者,如果我分别绘制两条线,那么两者都不合理。
如果您在CoreText中指定kCTJustifiedTextAlignment
或在NSJustifiedTextAlignment
指定NSTextField/View
除了最后一行文字都是合理的。最后一行自然对齐。
有没有办法强制对文本字段或textview的最后一行进行对齐,那么填充视图的宽度?
我已经考虑过使用CTLine
分别绘制每一行,并在那些上指定一些内容以使所有这些都合理,但我不确定如何去做。
由于
答案 0 :(得分: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);