UIFindInteraction view controller not visible on iPadOS

Originator:nikhil
Number:rdar://FB11356212 Date Originated:2022-08-23
Status:Open Resolved:
Product:UIKit Product Version:16 Beta 7
Classification: Reproducible:
 
On iPadOS 16 Beta 6 and Beta 7, presenting the view controller for a `UIFindInteraction` briefly displays the find interaction toolbar and then immediately dismisses. 

The following is observed in the logs:

2022-08-24 10:34:21.922668+0530 UIFindInteractionDemo[81201:659708] [TraitCollection] Class _UIFindNavigatorViewController overrides the -traitCollection getter, which is not supported. If you're trying to override traits, you must use the appropriate API.
2022-08-24 10:34:21.932173+0530 UIFindInteractionDemo[81201:659708] [TraitCollection] Class _UIFindNavigatorView overrides the -traitCollection getter, which is not supported. If you're trying to override traits, you must use the appropriate API.
2022-08-24 10:34:22.008366+0530 UIFindInteractionDemo[81201:659708] [LayoutConstraints] Unable to simultaneously satisfy constraints.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
(
    "<NSLayoutConstraint:0x600001bba800 find.nextButton.width == UIStackView:0x7f93c8f0cea0.height   (active, names: find.nextButton:0x7f93e8f359b0 )>",
    "<NSLayoutConstraint:0x600001bbb1b0 find.previousButton.width == UIStackView:0x7f93c8f0cea0.height   (active, names: find.previousButton:0x7f93e8f334e0 )>",
    "<NSLayoutConstraint:0x600001b81a40 'UISV-canvas-connection' UIStackView:0x7f93c8f0cea0.leading == find.doneButton.leading   (active, names: find.doneButton:0x7f93c8f14920 )>",
    "<NSLayoutConstraint:0x600001b81ae0 'UISV-canvas-connection' H:[find.nextButton]-(0)-|   (active, names: find.nextButton:0x7f93e8f359b0, '|':UIStackView:0x7f93c8f0cea0 )>",
    "<NSLayoutConstraint:0x600001b81b30 'UISV-spacing' H:[find.doneButton]-(8)-[UIStackView:0x7f93c8f08e40]   (active, names: find.doneButton:0x7f93c8f14920 )>",
    "<NSLayoutConstraint:0x600001b81c20 'UISV-spacing' H:[UIStackView:0x7f93c8f08e40]-(8)-[find.previousButton]   (active, names: find.previousButton:0x7f93e8f334e0 )>",
    "<NSLayoutConstraint:0x600001b81a90 'UISV-spacing' H:[find.previousButton]-(8)-[find.nextButton]   (active, names: find.nextButton:0x7f93e8f359b0, find.previousButton:0x7f93e8f334e0 )>",
    "<NSLayoutConstraint:0x600001b81860 'UIView-Encapsulated-Layout-Height' UIStackView:0x7f93c8f0cea0.height == 6   (active)>",
    "<NSLayoutConstraint:0x600001b81810 'UIView-Encapsulated-Layout-Width' UIStackView:0x7f93c8f0cea0.width == 0   (active)>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600001b81a90 'UISV-spacing' H:[find.previousButton]-(8)-[find.nextButton]   (active, names: find.nextButton:0x7f93e8f359b0, find.previousButton:0x7f93e8f334e0 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
--- dealloc @"<UICompatibilityInputViewController: 0x7f939a809800>" 0x0
--- dealloc @"<UIInputWindowController: 0x7f93d9840000>" 0x0
--- dealloc @"<UICompatibilityInputViewController: 0x7f939a830200>" 0x0
--- dealloc @"<UICompatibilityInputViewController: 0x7f93d9855800>" 0x0
--- dealloc @"<UICompatibilityInputViewController: 0x7f93c9839200>" 0x0
--- dealloc @"<UIInputWindowController: 0x7f93c9808200>" 0x0
--- dealloc @"<UICompatibilityInputViewController: 0x7f93bb081800>" 0x0
--- dealloc @"<UICompatibilityInputViewController: 0x7f93bb081200>" 0x0
--- dealloc @"<UICompatibilityInputViewController: 0x7f93c9868e00>" 0x0
--- dealloc @"<UIInputWindowController: 0x7f93c9033200>" 0x0
--- dealloc @"<UICompatibilityInputViewController: 0x7f93c9052c00>" 0x0
--- dealloc @"<UICompatibilityInputViewController: 0x7f93e9078800>" 0x0

Project to reproduce issue: https://github.com/dezinezync/FB10170943

Comments

I noticed the same

Thanks for filling the Feedback. I noticed the same behaviour but only when Stage Manager is enabled. Disabling it makes the find panel behave correctly. Hope Apples fix this soon. See: https://developer.apple.com/forums/thread/713307


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!