Wednesday, September 14, 2022

iOS 16 Text View Breakage

Jeff Johnson:

Apple automatically opted in UITextView to TextKit 2, for both Apple’s apps and third-party apps. The developer must explicitly opt out of TextKit 2 to use the old TextKit 1 behavior.


Apple’s typical way of preserving binary compatibility is to opt in an app to new features only if it’s compiled with the new SDK. This would have solved my problem, because my discontinued app is of course not compiled with the iOS 16 SDK.

Update (2022-11-09): Daniel Jalkut:

Perhaps the biggest risk for malfunction lies in scenarios where some significant customization is expected to work, but not in a way that affects the text view’s decision to carry on using TextKit 2. One such example is when it comes to customizing the drawing of the insertion point cursor.


By default, starting in macOS 13 Ventura, the above customization will fail, because it is evidently not supported by TextKit 2. The simple workaround, for the time being anyway, is to force your text view to use TextKit 1.

1 Comment RSS · Twitter

How bad are the new text engine in macOS and iOS? I can’t help noticing text rendering issues in recent macOS versions ( TextEdit, Preview, Xcode) that I had never seen before.

Leave a Comment