首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NSAttributedString中通过索引快速获取属性范围

在NSAttributedString中通过索引快速获取属性范围
EN

Stack Overflow用户
提问于 2022-10-14 14:30:44
回答 1查看 23关注 0票数 0

我有一个带有两个属性的NSAttributedString

从0到5 {0,5} -> attribute1

从6到10 {6,10} -> attribute2

我使用

代码语言:javascript
复制
let attributes = textView.textStorage.attributes(at: 7, longestEffectiveRange: nil, in: NSRange(location: 0, length: textView.textStorage.length))

在索引7处获取属性。

在索引7中,可能有完整的属性吗?

在我的例子中,我应该得到6-10

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-14 14:48:26

是的,您可以使用enumerateAttributes提供的NSAttributedString来完成这个任务。意味着获取字符串中每个属性的所有范围,并查找包含索引的范围。

代码会是这样的

代码语言:javascript
复制
var index = 7

attributeString.enumerateAttributes(in: NSRange(location: 0, length: attributeString.length), using: {
    _, range, _ in
    // if index in range
    if range.contains(index) {
        print("range: ", range)
        // do your code here
    }
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74070786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档