如何使用范围属性初始化NSAttributedString

就目前而言,我只能解决初始化后如何添加范围属性的问题,这显然对不可变的NSAttributedString实例无效。

如果我有NSMutableAttributedString,可以致电:

[str addAttribute:NSLinkAttributeName value:url range:range];


如果我有一个NSAttributedString,则可以构造它:

[[NSAttributedString alloc] initWithString:str attributes:@{NSLinkAttributeName: url}];


但是我找不到一种将范围放入attributesDict的方法。

谢谢,

最佳答案

从NSMutableAttributedString开始。如果那不是您所需要的,请通过在NSAttributedString上调用mutableCopy来创建可变副本。现在您有了一个NSMutableAttributedString。

因此,现在做您需要做的所有事情。

完成后,如果确实需要NSAttributedString,请在NSMutableAttributedString上调用copy以获取不可变的副本。 (但是很难知道为什么需要这样做,因为您总是可以在需要NSAttributedString的地方传递NSMutableAttributedString。)

关于ios - 如何创建具有范围属性的不可变NSAttributedString,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33115775/

10-12 14:33