/// <summary>Focus a view.</summary>
        public static void FocusView(ScriptableObject guiView)
        {
            if (!guiView)
            {
                return;
            }

            // guiView.EnsureOfType(Types.GUIView);
            if (guiView.IsOfType(Types.GUIView))
            {
                guiView.InvokeMethod("Focus");
            }
            else
            {
                var vp         = new ViewPyramid(guiView);
                var vc         = vp.Container;
                var methodName = "Internal_BringLiveAfterCreation";

                if (vc)
                {
                    if (vc.HasMethod(methodName, new Type[] { typeof(bool), typeof(bool), typeof(bool) }))
                    {
                        // displayImmediately, setFocus, showMaximized
                        vc.InvokeMethod(methodName, false, true, false);
                    }
                    else
                    {
                        // displayImmediately, setFocus
                        vc.InvokeMethod(methodName, false, true);
                    }
                }
            }
        }
        /// <summary>Focus a view.</summary>
        public static void FocusView(ScriptableObject guiView)
        {
            if (!guiView)
            {
                return;
            }

            guiView.EnsureOfType(Types.GUIView);
            guiView.InvokeMethod("Focus");
        }