2015-05-15 13 views
6

Tôi muốn sao chép tất cả các thuộc tính từ một số NSMutableAttributedString thành một thuộc tính mới. Mã tôi đã thử là:iOS - sao chép tất cả các thuộc tính NSMutableAttributedString sang 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; 
     } 
    }]; 

mã rõ ràng là không đầy đủ và có vẻ như chỉ đang cố gắng làm điều đó cho phông chữ. Tôi muốn lặp qua từng thuộc tính và thêm nó vào biến số NSMutableAttributedString mới. Cập nhật: câu hỏi của tôi là làm thế nào để tôi áp dụng tất cả các thuộc tính của một NSMutableAttributedString khác NSMutableAttributedString? Chúng tôi có thể sử dụng phương pháp này somehow:attribute:atIndex:effectiveRange

+0

Câu hỏi của bạn là gì? – Dima

+0

câu hỏi của tôi là làm cách nào để áp dụng tất cả các thuộc tính của một NSMutableAttributedString cho một NSMutableAttributedString khác? – j2emanue

+0

Xem câu trả lời của tôi cho đúng cách để làm điều này. – Dima

Trả lời

-1

NSMutableAttributedString (và NSAttributedString) phù hợp với NSCopying. Vì vậy, bạn chỉ có thể thực hiện việc này:

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

Tôi muốn sao chép các thuộc tính chứ không phải toàn bộ đối tượng. Dù sao tôi có thể nhận được tất cả các attribures trong một từ điển có lẽ và sau đó sao chép chúng vào tất cả để một attributedString mới? – j2emanue

Các vấn đề liên quan