NSTextStorage,核心数据和NSUndoManager - 如何跟踪变化?

时间:2013-07-05 10:40:33

标签: objective-c cocoa core-data nsundomanager nstextstorage

想象一下,托管对象具有NSTextStorage类型的瞬态属性。这将在保存时存档为二进制NSData对象。在编辑时,我交换textStorage的{​​{1}},以便所有更改直接进入文本存储。这样,我可以更新与某些文本位置相关的其他托管对象,而不会使上下文处于不一致状态,并且使用相同文本存储的其他UI元素会立即更新。

问题是托管对象上下文的NSTextView不知道如何处理undo / redo上的文本存储。我认为这是因为撤消操作由文本视图处理。

所以我想我可以在每次更改时序列化/归档文本存储,并用未归档的内容替换文本存储内容。即使使用较长的文本文档,我也对它进行了测试,并且它不是Mac上的真正瓶颈。但是如何让撤消管理器使用它呢?或者有一种完全不同的方式让它发挥作用。

我已将示例项目放在http://cl.ly/3B1P0r2P1i0m

0 个答案:

没有答案