Я обнаружил ограничение отображения подсказок, когда они вызываются из всплывающего окна. Специально проверено с помощью 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
не было показано. Пробовал запускать в основном потоке, тоже безрезультатно.
ОБНОВЛЯТЬ. Я понял это, смотрите ответ ниже.
Проблема возникает при попытке вызвать подсказку из всплывающего окна. Очевидно, нельзя иметь 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>.