diff --git a/Mopups/Mopups.Maui/Platforms/iOS/PopupWindow.cs b/Mopups/Mopups.Maui/Platforms/iOS/PopupWindow.cs index d5ddfa1..e91fda0 100644 --- a/Mopups/Mopups.Maui/Platforms/iOS/PopupWindow.cs +++ b/Mopups/Mopups.Maui/Platforms/iOS/PopupWindow.cs @@ -24,25 +24,36 @@ namespace Mopups.Platforms.iOS } - public override UIView HitTest(CGPoint point, UIEvent? uievent) + public override UIView? HitTest(CGPoint point, UIEvent? uievent) { - var platformHandler = (PopupPageRenderer?)RootViewController; - var renderer = platformHandler?.Handler; - var hitTestResult = base.HitTest(point, uievent); - - if (!(platformHandler?.Handler?.VirtualView is PopupPage formsElement)) - return hitTestResult; - - if (formsElement.InputTransparent) - return null!; - - if (formsElement.BackgroundInputTransparent && renderer?.PlatformView == hitTestResult) + try { - formsElement.SendBackgroundClick(); - return null!; + var platformHandler = (PopupPageRenderer?)RootViewController; + var renderer = platformHandler?.Handler; + var hitTestResult = base.HitTest(point, uievent); + + if(renderer?.VirtualView is null) + { + return hitTestResult; + } + + if(renderer.VirtualView is not PopupPage formsElement) + return hitTestResult; + + if(formsElement.InputTransparent) + return null; + + if(formsElement.BackgroundInputTransparent && renderer.PlatformView == hitTestResult) + { + formsElement.SendBackgroundClick(); + return null; + } + return hitTestResult; + } + catch(Exception) + { + return null; } - return hitTestResult; - } } }