我需要知道TextKit的NSTextContainer的size何时发生变化,这样我就可以在NSLayoutManager中更新一些缓存。当size发生变化时,如何接收通知?TextKit一般(特别是NSTextContainer的size属性)支持KVO吗?我查看了NSTextContainer.h头和 documetation,但也找不到任何关于它的信息。
发布于 2016-03-21 22:16:31
当NSTextContainer的大小或形状发生变化时,它应该在其NSLayoutManager上调用-[NSLayoutManager textContainerChangedGeometry:]:
该方法由文本系统的其他组件自动调用;您几乎不需要直接调用它。但是,NSTextContainer的子类必须在形状大小发生变化时调用此方法(例如,在添加、移动或删除图形时,动态调整形状以包装文本的文本容器必须调用此方法)。
我还没有对此进行测试,以确定它是否需要在heightTracksTextView或widthTracksTextView上设置NSTextContainer;是否在NSLayoutManager上设置verticallyResizable或horizontallyResizable;或者以编程方式调用-[NSTextContainer setSize:]或-[NSTextContainer setSimpleRectangularTextContainer:]是否会像公告的那样自动调用-[NSLayoutManager textContainerChangedGeometry:]。
https://stackoverflow.com/questions/36142671
复制相似问题