Как вы сказали, MvvmCross 6 теперь позаботится о том, чтобы назначить вам KeyWindow.
На самом деле, читая исходный код MvvmCross 6+, вы можете увидеть это в FinishedLanchingWithOptions:
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
//window is being assigned here by MvvmCross
if (Window == null)
Window = new UIWindow(UIScreen.MainScreen.Bounds);
MvxIosSetupSingleton.EnsureSingletonAvailable(this, Window).EnsureInitialized();
RunAppStart(launchOptions);
FireLifetimeChanged(MvxLifetimeEvent.Launching);
return true;
}
Тем не менее, они не предоставляют вам возможности для этого. Чтобы это исправить, я бы предложил переопределить и сделать что-то вроде этого:
[Register(nameof(AppDelegate))]
public class AppDelegate : MvxApplicationDelegate<Setup, Core.App>
{
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
if (Window == null)
Window = new CustomWindow(UIScreen.MainScreen.Bounds);
base.FinishedLaunching(application, launchOptions);
}
}
Надеюсь, это поможет