The NSTextViewportLayoutControllerDelegate.textViewportLayoutControllerDidLayout(_:)
documentation states that
Layout information on textViewportLayoutController is up-to-date at the point of this call.
however it is easy to put the NSTextViewportLayoutController in a state where after calling textViewportLayoutControllerDidLayout, the value of viewportRange
is nil (unexpected) and value of the property viewportBounds
is .zero
The TextKit2 sample application found at https://developer.apple.com/documentation/uikit/using-textkit-2-to-interact-with-text makes that assumption as well, and in few places force unwrap the value of viewportRange
, that leads to runtime crashes.
This behavior is also discussed in Developer Forum thread about TextKit2 viewport relocation: https://developer.apple.com/forums/thread/761364?answerId=800516022#800516022
How to reproduce: