我想将所有属性从一个NSMutableAttributedString
复制到一个新属性中。我试过的代码是:
[attrStr enumerateAttribute:NSFontAttributeName inRange:NSMakeRange(0, attrStr.length) options:0 usingBlock:^(id value, NSRange range, BOOL *stop) {
if (value) {
// UIFont *oldFont = (UIFont *)value;
UIFont *newFont = [_label.attributedText
[attrStr removeAttribute:NSFontAttributeName range:range];
[attrStr addAttribute:NSFontAttributeName value:newFont range:range];
//found = YES;
}
}];
代码显然是不完整的,看起来它只是试图为字体做。我想遍历每个属性并将其添加到新的NSMutableAttributedString
变量中。更新:我的问题是如何将一个NSMutableAttributedString
的所有属性应用到另一个NSMutableAttributedString
?
我们可以使用此方法somehow:attribute:atIndex:effectiveRange
答案 0 :(得分:-1)
NSMutableAttributedString
(和NSAttributedString
)符合NSCopying
。所以你应该能够做到这一点:
NSMutableAttributedString *mutableCopy = attrStr.mutableCopy;
NSAttributedString *immutableCopy = attrStr.copy;