2

我注意到您可以使用选择器将多个文本容器添加到 Objective-C 中的布局管理addTextContainer:(NSTextContainer *)textContainer器。使用 TextKit,我只需要添加一个文本容器,当使用多个文本容器时,所有的 textviews 都会从链接到布局管理器的文本存储中填充相同的文本。我只是好奇,但我什么时候需要将多个文本容器添加到一个布局管理器?

4

2 回答 2

2

当您需要关联的 NSTextStorage 中的文本跨越多个页面(通常每个页面都是一个NSTextView)时,一个 NSLayoutManger 到多个文本容器,就像在文字处理器中将其文本分布在多个页面上一样。

NSLayoutManager足够聪明,可以将文本分成NSTextStorage每个NSTextContainer.

于 2015-03-14T21:31:11.857 回答
1

... NSTextStorage 对象的数据并将它们布置在由 NSTextContainer 对象定义的区域内。

此配置受到只有一对 NSTextContainer-NSTextView 对的限制。在这样的安排中,文本在 NSTextContainer 定义的区域内不间断地流动。

这种安排无法适应分页符、多列布局和更复杂的布局。

通过使用多个 NSTextContainer-NSTextView 对,可以实现更复杂的布局安排。例如,为了支持分页符,应用程序可以配置文本对象,如图 3-4 所示。

常见配置

https://developer.apple.com/library/content/documentation/TextFonts/Conceptual/CocoaTextArchitecture/TextSystemArchitecture/ArchitectureOverview.html

于 2017-08-01T01:38:09.507 回答