iOS-将所有NSMutableAbeatTributedString属性复制到另一个NSMutableAttribut



我想将所有属性从一个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

NSMutableAttributedString(and NSAttributedString)符合 NSCopying。因此,您应该可以做到这一点:

NSMutableAttributedString *mutableCopy = attrStr.mutableCopy;
NSAttributedString *immutableCopy = attrStr.copy;

最新更新