Подсказки поверх всплывающих окон в Xamarin и MAUI

Я обнаружил ограничение отображения подсказок, когда они вызываются из всплывающего окна. Специально проверено с помощью CommunityToolkit.Maui всплывающих окон.

Вот подробности:

На странице карты у меня есть этот обработчик для события нажатия карты:

void mapClicked(object sender, MapClickedEventArgs e) {
    var pin = new Pin {
            Label = "Here's where it is",
            Location = e.Location
        };
    map.Pins.Add(pin);
}

Я хотел разрешить пользователю редактировать метку булавки при нажатии на нее, например:

pin.InfoWindowClicked += async (s, args) => {
    string pinName = ((Pin)s).Label;
    await DisplayPromptAsync("Enter new label", "enter new label");
};

Однако это не сработало, так как DisplayPrompt не было показано. Пробовал запускать в основном потоке, тоже безрезультатно.

ОБНОВЛЯТЬ. Я понял это, смотрите ответ ниже.


1
110
1

Ответ:

Решено

Проблема возникает при попытке вызвать подсказку из всплывающего окна. Очевидно, нельзя иметь DisplayPromptAsync (или DisplayAlert, если уж на то пошло) поверх всплывающего окна.

На уровне платформы в iOS сообщение об ошибке гласит:

Attempt to present <UIAlertController> on <Microsoft_Maui_Controls_Platform_Compatibility_ShellFlyoutRenderer> (from <Microsoft_Maui_Controls_Platform_Compatibility_ShellFlyoutRenderer>) which is already presenting <CommunityToolkit_Maui_Core_Views_MauiPopup>.