Как я могу представить лист в ответ на нажатие кнопки, которое также закрыло открытое меню? ⇐ IOS
Как я могу представить лист в ответ на нажатие кнопки, которое также закрыло открытое меню?
Я разрабатываю представление SwiftUI, которое содержит элементы Menu и Button, которые запускают представление листа.
Я заметил странный эффект: если нажатие кнопки, которое обычно отображает лист, происходит, когда Меню в данный момент представлено, лист не отображается. Более того, последующие нажатия также не отображают лист. Когда это происходит, я вижу следующее зарегистрированное сообщение:
Попытка представить на (из ), который уже представляет .
Это происходит только при быстром нажатии на кнопку модального представления — при более длительном нажатии все работает как положено.
Полное приложение, демонстрирующее такое поведение, выглядит следующим образом:
импортировать SwiftUI @основной структура менюAndButtonApp: Приложение { var body: некоторая сцена { ОкноГруппа { КонтентПросмотр() } } } структура ContentView: Просмотр { @State var modalIsPresented = false var body: some View { HStack(интервал: 28) { Меню("Открыть меню") { Текст("Пункт меню") } Button("Настоящее модальное окно") { модальныйIsPresented = правда } }.sheet(isPresented: $modalIsPresented) { Text("Вот лист") } } } Это очень похоже на ошибку SwiftUI, но я ищу альтернативный подход или обходной путь, который позволит мне предотвратить это раздражающее поведение. (Один обходной путь, который я подтвердил, — это обернуть действие кнопки в DispatchQueue.main.asyncAfter(.now() + 0.2) { , чтобы дать время для закрытия контекстного меню, но я бы сделать это безоговорочно, потому что я не могу определить, отображается ли контекстное меню в любой момент.
Я разрабатываю представление SwiftUI, которое содержит элементы Menu и Button, которые запускают представление листа.
Я заметил странный эффект: если нажатие кнопки, которое обычно отображает лист, происходит, когда Меню в данный момент представлено, лист не отображается. Более того, последующие нажатия также не отображают лист. Когда это происходит, я вижу следующее зарегистрированное сообщение:
Попытка представить на (из ), который уже представляет .
Это происходит только при быстром нажатии на кнопку модального представления — при более длительном нажатии все работает как положено.
Полное приложение, демонстрирующее такое поведение, выглядит следующим образом:
импортировать SwiftUI @основной структура менюAndButtonApp: Приложение { var body: некоторая сцена { ОкноГруппа { КонтентПросмотр() } } } структура ContentView: Просмотр { @State var modalIsPresented = false var body: some View { HStack(интервал: 28) { Меню("Открыть меню") { Текст("Пункт меню") } Button("Настоящее модальное окно") { модальныйIsPresented = правда } }.sheet(isPresented: $modalIsPresented) { Text("Вот лист") } } } Это очень похоже на ошибку SwiftUI, но я ищу альтернативный подход или обходной путь, который позволит мне предотвратить это раздражающее поведение. (Один обходной путь, который я подтвердил, — это обернуть действие кнопки в DispatchQueue.main.asyncAfter(.now() + 0.2) { , чтобы дать время для закрытия контекстного меню, но я бы сделать это безоговорочно, потому что я не могу определить, отображается ли контекстное меню в любой момент.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Открытое раскрывающееся меню не изменится, пока я не закрою раскрывающееся меню.
Anonymous » » в форуме Android - 0 Ответы
- 45 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Открытое раскрывающееся меню не изменится, пока я не закрою раскрывающееся меню.
Anonymous » » в форуме Android - 0 Ответы
- 38 Просмотры
-
Последнее сообщение Anonymous
-