如何制作一个 NSLayoutManager 将其文本中的每个段落分配给不同的 NSTextContainer?
这类似于 TextKit 中常见的多页/多列用法,但每个页面对应不同长度的不同段落。
我认为最简单的方法是继承 NSTextContainer 并覆盖
- (CGRect)lineFragmentRectForProposedRect:(CGRect)proposedRect atIndex:(NSUInteger)characterIndex writingDirection:(NSWritingDirection)baseWritingDirection remainingRect:(CGRect *)remainingRect
在您的自定义方法中,您将检查属性characterIndex并查看它们是否与文本容器分配给的段落匹配。如果是,则返回super该方法的实现,否则返回CGRectZero表示建议的 rect 对该文本容器无效。这确实意味着您必须跟踪段落属性及其关联的文本容器(反之亦然)。
| 归档时间: |
|
| 查看次数: |
783 次 |
| 最近记录: |