gpt4 book ai didi

iphone - Core Text - 在 iPhone 中选择文本?

转载 作者:行者123 更新时间:2023-12-03 19:26:38 26 4
gpt4 key购买 nike

我需要在我的 View 中使用核心文本渲染富文本(简单格式、一行文本中的多种字体等)。我想知道用户是否可以使用(标准复制/粘贴功能)选择以这种方式呈现的文本?

最佳答案

我在 CoreText 中实现了文本选择。这确实是一项艰苦的工作……但这是可行的。

基本上,您必须使用 CTFrameGetLineOrigins(1)CTLineGetTypgraphicBoundsCTLine 矩形和原点>(2)CTLineGetStringRange(3)CTLineGetOffsetForStringIndex(4)

可以使用原点(1)、上升(2)、下降(2)和偏移来计算直线矩形>(3)(4)如下所示。

lineRect = CGRectMake(origin.x + offset, 
origin.y - descent,
offset,
ascent + descent);

完成此操作后,您可以测试哪条线有触摸点循环线(始终记住 CoreText 使用逆 Y 坐标)。

知道了触摸点所在的线,您就可以使用CTLineGetStringIndexForPosition知道位于该点的字母(或最近的字母)。

这是一张屏幕截图。

selecting text drawn with CoreText

对于那个放大镜,我使用了代码 shown in this post .

编辑:要绘制蓝色背景选区,您必须使用 CGContextFillRect 绘制矩形。不幸的是,NSAttributedString 中没有背景颜色。

关于iphone - Core Text - 在 iPhone 中选择文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7979592/

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