gpt4 book ai didi

cocoa - 如何在翻转的 NSView 中正确绘制带有 "Core Text"的文本

转载 作者:行者123 更新时间:2023-12-03 17:47:16 27 4
gpt4 key购买 nike

我使用自己的 NSView

- (BOOL) isFlipped { return TRUE; }

具有基于左上的坐标。问题是我用 Core Text 绘制文本:

CTFontRef font = CTFontCreateWithFontDescriptor(descriptor, size, NULL);
CFAttributedStringRef attrStr = makeAttrStringRef(str, font);
CTLineRef line = CTLineCreateWithAttributedString(attrStr);
CGContextSetTextPosition(context, pos.x, pos.y); // pos is left-top corener
CTLineDraw(line, context);

文本翻转:

enter image description here

如果我将翻转矩阵传递给CTFontCreateWithFontDescriptor

CGAffineTransform flipped = (CGAffineTransform){1,0,0,-1,0,0};

文本被移动(如果不在pos,则为文本的左上角):

enter image description here

在翻转的 NSView 中绘制文本并保持左上角坐标的正确方法是什么?

最佳答案

您始终必须在渲染文本之前初始化文本矩阵,通常是为了标识:

CGContextSetTextMatrix(context, CGAffineTransformIdentity);

已经有一段时间了,所以我无法立即记住您是否需要翻转它以在 macOS 上进行翻转 View 。 (如果您遇到问题,请添加评论,我会挖掘出正确的转换。)

关于cocoa - 如何在翻转的 NSView 中正确绘制带有 "Core Text"的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50509911/

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