如何跟踪NSMutableAttributedString中的位置?

时间:2016-06-30 20:47:33

标签: swift macos

我正在迭代大量的输入行,并且对于某些标准,我将一些行拉出来构建一个结果以显示给用户。我希望匹配条件的最后一行是不同的颜色。目前我正在这样做

 endOfString = result.string.characters.count
 lengthOfLastString = tempResult.string.characters.count

然后当我准备好显示我构建的字符串时,我做

let changeRange = NSRange(location: endOfString+1, length: lengthOfLastString)
result.addAttributes(singleAttribute, range: changeRange)

但这不起作用,因为我最终超越了String的有效索引范围。我一般都明白Swift字符串更复杂,所以做这样的事情的方法是什么?

按要求提供样本数据:

  

但是,对待陌生人的放逐行为

     

富。他们将他们的头盔放在他们的头盔上。他们的Speares,都回归   支持他们的Chaires againe:用vs撤回,然后让   号角响起,

     

当我们回归这些Dukes时,我们的关键词是什么。

我开始关注包含单词“King”的行,我想要捕获所有行,包括带有“Keyword”的行。 “关键字”的最后一行是我想要制作不同颜色的内容。

1 个答案:

答案 0 :(得分:1)

在构建输出字符串时,在每行追加之前记录endIndex。然后,在添加最后一行后,savedIndex..<endIndex就是您要查找的范围。