gpt4 book ai didi

iOS 7 文本工具包 : When has NSLayoutManager filled its last NSTextContainer?

转载 作者:行者123 更新时间:2023-11-29 12:54:42 25 4
gpt4 key购买 nike

我将 Text Kit 与 UIPageViewController 结合使用来创建一本书。原始文本存储在文本文件 (.html) 中并放入 NSTextStorage。

[NSLayoutManager addTextContainer:(NSTextContaner*)txt] 方法工作得很好,但是没有办法知道 NSLayoutManager 何时填充了最后一个 NSTextContainer - 它只是继续返回 NSTextContainer,即使在显示所有下一个之后。结果,在 NSLayoutManager 完成后,您将获得所有银行页面。

我已经尝试使用 [NSLayoutManagerDelegate didCompleteLayoutForTextContainer: atEnd:] 回调方法,但它无法正常工作。它在填充每个 NSTextContainer 后返回 atEnd flag = YES,而不仅仅是在填充最后一个 NSTextContainer 时。我已经设置了 UITextView.scrollable = NO(在其他地方建议)但这没有帮助。

我还尝试在没有显示文本时调用 UITextView.text 来检查文本,但该方法总是返回位于 NSTextContainer/NSLayoutManager 后面的整个 NSTextStorage 的内容。

如果我不知道最后一个容器什么时候装满,我就不知道所有页面什么时候排好。有没有办法测试 UITextView 以查看其是否为空或 NSContainer,或 NSLayoutManager 以查看完成的文本布局?

最佳答案

我一直无法正确调用回调方法 - 我认为这是一个错误 - 但我找到了一种方法来检查下一个容器是否为空..

    [_layoutManager addTextContainer:textContainer];
NSRange range = [_layoutManager glyphRangeForTextContainer:textContainer];
if (range.length == 0) {
return nil;// top adding container because this last one is empty
}

关于iOS 7 文本工具包 : When has NSLayoutManager filled its last NSTextContainer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21441369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com