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 в примере кода.

Кто-нибудь сталкивался с этой проблемой? Может быть, есть правильный способ построить такой макет, сохраняя стабильную высоту?

0 ответов

Другие вопросы по тегам