Also experiencing this issue. Using a UIWindow overlay seems to have been the generally used method to present content over a sheet, but this is now broken in iOS 18.
[...]
Nonetheless, this issue is present and doesn't allow proper hit testing on a UIWindow overlay.
Writing to second this. The framework's interpretation of the hit test results appears to have changed so as to preclude UIWindow layering pattern.
Setup:
A key window with a .normal level
An overlay UIWindow subclass with a .alert level
On iOS 17 a UIWindow hit test returning nil—in response to the hit bubbling all of the way up to the widow's root view—led to the system sending continuing hit testing on the lower UI window.
No key window change observed.
A second call to hitTest is made
On iOS 18 the second call to hitTest the overlay window is also made, but this time a call to super's hitTest or the root view's hitTest does not return the root view.
Additionally the keyWindow state appears to change across the two windows unless canBecomeKey is overridden to return false.