gpt4 book ai didi

objective-c - Objective-C - 核心文本和绘图线?

转载 作者:搜寻专家 更新时间:2023-10-30 20:22:26 26 4
gpt4 key购买 nike

我正在使用富文本编辑器的核心文本。我允许用户更改文本对齐方式。

假设用户输入了 3 个词,然后选择了正确的对齐按钮。单击按钮后,我创建了一个 CTParagraphStyle,并将 textAlignment 设置为右侧,并将该范围的 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);
}

最佳答案

您需要跟踪当前的“插入属性”,即应该应用于用户输入的任何文本的属性。粗体、斜体等也是如此。基本上,您需要查看当前光标位置之前的属性并将这些属性应用于新文本。

关于objective-c - Objective-C - 核心文本和绘图线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6970666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com