【问题标题】:Adding Multiple NSTextContainers to an NSLayoutManager将多个 NSTextContainers 添加到 NSLayoutManager
【发布时间】:2014-08-18 14:35:59
【问题描述】:

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

【问题讨论】:

    标签: uitextview nstextview nslayoutmanager nstextstorage nstextcontainer


    【解决方案1】:

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

    NSLayoutManager 足够聪明,可以将NSTextStorage 中的文本拆分为每个NSTextContainer

    【讨论】:

      【解决方案2】:

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

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

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

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

      常用配置

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

      【讨论】:

        猜你喜欢
        • 2015-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-23
        • 2010-11-06
        • 2012-05-02
        • 2011-09-13
        相关资源
        最近更新 更多