我想在我的iOS和Mac应用程序中启用带有富文本编辑选项(现在为粗体,斜体和下划线)的UITextView和NSTextView . 我设法弄清楚如何将这些属性设置为NSAttributedString,以及从视图中保存和检索NSAttributedStrings的基础知识,甚至使它们跨设备同步,但我无法弄清楚如何跨设备和平台使其工作可能存在用于呈现数据的不同字体 .

例如 . 在deviceA上,用户设置了字体大小14.他/她保存了一些文本,其中一部分为粗体,并保存到NSAttributedString,后者用它保存整个字体大小 .

self.attributedLogNote = self.textView.attributedText;

这将转换为NSData,并同步到另一个设备,其中发生相反的情况:

self.textView.attributedText = self.attributedLogNote;

但在另一台设备上,用户可能对其字体大小设置了不同的设置,或者可能在iOS上使用动态类型 . 当我使用相同的attributesString设置textView时,它将以原始设备的字体呈现,而不是在第二个设备上使用的字体 .

理想情况下应如何处理?有没有办法从NSAttributedString中删除字体样式/大小/系列,但仍然保存放置粗体,斜体或其他属性的位置?如果是这样,是否有系统支持的方式来执行此操作,或者我必须自己执行此操作?或者,在HTML或其他跨平台标准之间来回转换这种富文本编辑更好吗?