iOS 15 中的 SwiftUI .searchable - .navigationBarDrawer(displayMode: .always)

X Æ*_*-12 7 ios swift swiftui

我想使用新的 .searchable 修饰符和 .navigationBarDrawer(displayMode: .always) 实现搜索栏。但如果我启动应用程序,搜索栏的默认位置已经“滚动”。

当我打开应用程序时

但这就是我想在应用程序启动时实现的目标:

我想要实现什么

这是我的代码:

struct SearchView: View {
    @State var searchText = ""
    var body: some View {
        NavigationView {
            List {
                Text("Search Bar")
            }
            .navigationBarTitle("Search")
            .searchable(text: $searchText, placement: .navigationBarDrawer(displayMode: .always))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

RTX*_*mer 1

Hacky 解决方案但它有效:

struct ContentView: View {
    @State var searchText = ""
    var body: some View {
        NavigationView {
            ZStack {
                Rectangle()
                    .fill(Color.white)
                    .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: 1)
                
                List {
                    Text("Search Bar")
                }
            }
            .searchable(text: $searchText, placement:.navigationBarDrawer(displayMode: .always))
            .navigationBarTitle("Search", displayMode: .large)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)