Objective c 来回切换NSTextViews的文本存储

Objective c 来回切换NSTextViews的文本存储,objective-c,cocoa,Objective C,Cocoa,我正在尝试在一个产品中创建一个功能,让用户能够将textview一分为二。完成此操作的方法是从其superview中删除textview,生成NSSplitView并将textview以及新的NSTextView实例添加到此splitview。最后,我让这两个文本视图共享相同的文本存储,以便它们共享相同的内容 它工作得很好。但问题是当我想让两个文本视图中的一个更改文本存储时。NSLayoutManager中的replaceTextStorage方法会导致NSTextView和NSTextStor

我正在尝试在一个产品中创建一个功能,让用户能够将textview一分为二。完成此操作的方法是从其superview中删除textview,生成NSSplitView并将textview以及新的NSTextView实例添加到此splitview。最后,我让这两个文本视图共享相同的文本存储,以便它们共享相同的内容

它工作得很好。但问题是当我想让两个文本视图中的一个更改文本存储时。NSLayoutManager中的replaceTextStorage方法会导致NSTextView和NSTextStorage都更改textStorage。API文档说明:

replaceTextStorage:全部 NSLayoutManager对象共享 然后是原始存储对象 分享新的。这种方法使 所有必要的调整,以保持 这些关系完好无损,不像 setTextStorage:

所以它这样做是有道理的。但问题是,我如何才能让两个(或更多)文本视图首先共享同一个存储空间,然后让它们使用自己的存储空间

我尝试过替换layoutManager,甚至尝试创建NSTextView的新实例,但没有成功


有什么建议吗?

如果希望两个NSTextView有区别,那么必须创建两个并行文本系统

首先,从以下体系结构开始(该体系结构在中描述):

  • 一种常见的NSTEXT存储器
  • 具有NSLayoutManager/NSTextContainer/NSTextView的第一个分支
  • 具有NSLayoutManager/NSTextContainer/NSTextView的第二个分支

然后,分别调用
replaceTextStorage:
方法来设置不同的NSTextStorage。

如果希望两个NSTextView有差异,则必须创建两个并行文本系统

首先,从以下体系结构开始(该体系结构在中描述):

  • 一种常见的NSTEXT存储器
  • 具有NSLayoutManager/NSTextContainer/NSTextView的第一个分支
  • 具有NSLayoutManager/NSTextContainer/NSTextView的第二个分支

然后,分别调用
replaceTextStorage:
方法来设置不同的NSTextStorage。

非常感谢您。。。我一点也没看到。。。非常感谢你。。。我一点也没看到。。。令人惊叹的