菜鸟教程小白 发表于 2022-12-13 15:50:11

ios - 可以存储(或恢复)包含 NSTextAttachment 的 NSAttributedString 吗?


                                            <p><p>我正在编写一个文本编辑器,用户可以使用它输入带有样式的文本并插入图像,所以我使用 NSAttributedString 来管理内容。我的问题是如何存储文本编辑器关闭之前的内容,并在下次打开编辑器后恢复内容?</p>

<p>我写了一个 NSAttributedString 类别,现在我可以在 NSTextAttachment 中存储(和恢复)文本但不能存储 UIImageView,下面是我的代码的一部分:</p>

<pre><code>-(NSData*)customEncode {
__block NSMutableArray* archivableAttributes=[init];

) options:0 usingBlock:^(NSDictionary *attrs, NSRange range, BOOL *stop) {
    NSLog(@&#34;range: %d %d&#34;,range.location, range.length);
    NSLog(@&#34;dict: %@&#34;,attrs);
    NSLog(@&#34;keys: %@&#34;, );
    NSLog(@&#34;values: %@&#34;, );

    NSMutableDictionary* tDict=[init];

    forKey:@&#34;location&#34;];
    forKey:@&#34;length&#34;];

    for (NSString* tKey in ) {
      if () {
            )] forKey:@&#34;CTUnderlineColor&#34;];
      }
      if () {
            NSNumber* underline=;
            ;
      }
      if () {
            )] forKey:@&#34;CTForegroundColor&#34;];
      }
      if () {
            CTFontRef font=((__bridge CTFontRef));

            NSDictionary* fontDict=[NSDictionary
                                    dictionaryWithObjects:
                                    , nil]
                                    forKeys:
                                    ];

            ;
      }
    }

    ;
}];

NSMutableDictionary* archiveNSMString=[NSMutableDictionary
                                       dictionaryWithObjects: ,archivableAttributes,nil]
                                       forKeys:];

NSLog(@&#34;archivableAttributes array: %@&#34;,archiveNSMString);

NSData* tData=;

NSLog(@&#34;tdata: %@&#34;,tData);

return tData;
</code></pre>

<p>}</p>

<p>我花了相当长的时间进行调查和实验,搜索显示有几个人有相同的问题,但没有令人满意的答案。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>最后,我使用了一个名为 <a href="https://github.com/ibireme/YYText/blob/3d31ec54d7c3650dc1651b358ad2b3ede30568a4/YYText/String/YYTextArchiver.h" rel="noreferrer noopener nofollow">YYTextArchiver</a> 的 NSKeyedArchiver 子类。直接序列化 NSAttributedString,它对我有用。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 可以存储(或恢复)包含 NSTextAttachment 的 NSAttributedString 吗?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36465761/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36465761/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 可以存储(或恢复)包含 NSTextAttachment 的 NSAttributedString 吗?