Text Kit と UIPageViewController を組み合わせて本を作成しています。元のテキストはテキスト ファイル (.html) に保存され、NSTextStorage に配置されます。
[NSLayoutManager addTextContainer:(NSTextContaner*)txt] メソッドはうまく機能しますが、NSLayoutManager が最後の NSTextContainer をいつ満たしたかを知る方法はありません。次のすべてが表示された後でも NSTextContainer を返し続けるだけです。その結果、NSLayoutManager が完了すると、すべてのバンク ページが取得されます。
[NSLayoutManagerDelegate didCompleteLayoutForTextContainer: atEnd:] コールバック メソッドを使用してみましたが、正しく動作しません。最後の NSTextContainer が満たされたときだけでなく、各 NSTextContainer が満たされた後に atEnd flag = YES を返します。UITextView.scrollable = NO (他の場所で推奨) を設定しましたが、それは役に立ちません。
また、テキストが表示されていないときに UITextView.text を呼び出してテキストを確認しようとしましたが、そのメソッドは常に NSTextContainer/NSLayoutManager の背後にある NSTextStorage 全体の内容を返します。
最後のコンテナがいついっぱいになるかがわからない場合、すべてのページがいつレイアウトされるかわかりません。UITextView をテストして空か NSContainer かどうかを確認する方法、または NSLayoutManager でテキストのレイアウトが完了したことを確認する方法はありますか?