【问题标题】:How do I receive notifications when TextKit's NSTextContainer's size changes?当 Text 的 NSTextContainer 大小发生变化时,如何接收通知?
【发布时间】:2016-03-21 22:16:31
【问题描述】:

我需要知道TextKitNSTextContainersize 何时更改,因此我可以更新我的NSLayoutManager 中的一些缓存。当size 更改时,我如何接收通知? TextKit 通常(特别是 NSTextContainersize 属性)是否支持 KVO?我查看了NSTextContainer.h 标头和NSTextContainer documetation,但无论哪种方式我都找不到任何相关信息。

【问题讨论】:

    标签: textkit


    【解决方案1】:

    NSTextContainer 应该在其大小或形状发生变化时在其NSLayoutManager 上调用-[NSLayoutManager textContainerChangedGeometry:]

    此方法由文本的其他组件自动调用 系统;您应该很少需要直接调用它。的子类 但是,NSTextContainer 必须在其大小的任何时候调用此方法 形状变化(动态调整其形状的文本容器 例如,在放置的图形周围环绕文本时,必须这样做 图形被添加、移动或删除)。

    我尚未对此进行测试以确定是否需要在NSTextContainer 上设置heightTracksTextViewwidthTracksTextView;将verticallyResizablehorizontallyResizable 设置在NSLayoutManager 上;或者以编程方式调用-[NSTextContainer setSize:]-[NSTextContainer setSimpleRectangularTextContainer:] 将自动调用-[NSLayoutManager textContainerChangedGeometry:],如广告所示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      • 2017-10-18
      • 2022-07-22
      相关资源
      最近更新 更多