SwiftUI — MenuBarExtra со стилем .window: проблема с макетом при использовании ScrollView
Я пытался создать приложение меню для macOS, но, поскольку оно содержит несколько представлений в прокрутке, как вы понимаете, мне пришлось использовать .
Все идет нормально.
Дело в том, что при первом открытии меню высота кажется правильной, но со второго раза размер представления изменяется на определенную меньшую высоту. Вы можете попробовать этот простой фрагмент:
MenuBarExtra("", systemImage: "info") {
ScrollView {
VStack(alignment: .leading) {
ForEach(0..<100) {
Text("Row \($0)")
}
}
}
}
.menuBarExtraStyle(.window)
Изменение.menuBarExtraStyle(.window)
к.menuBarExtraStyle(.menu)
устраняет проблему, но, конечно, вы не можете создать свой собственный макет, функции и т. д., воспользовавшись преимуществами.window
стиль просто отображать.
Даже установка максимальной высоты -.frame(maxHeight: maxHeight)
- для ScrollView, похоже, это не решает проблему.
Тот же результат.frame(maxHeight: .infinity)
для VStack в примере кода.
Кто-нибудь сталкивался с этой проблемой? Может быть, есть правильный способ построить такой макет, сохраняя стабильную высоту?