可搜索修饰符不在导航栏标题下方显示搜索栏

Pet*_*sta 11 swiftui swiftui-list swiftui-foreach swiftui-navigationview

searchable我正在使用 iOS 15 并在 SwiftUI 中的列表上尝试新的修饰符。看起来,当您附加searchable(text: $searchText)到 NavigationView 时,搜索栏默认呈现在屏幕上的导航栏标题下方。当我尝试使用它并运行模拟器时,搜索栏不会呈现在屏幕上。仅当我开始在屏幕上向下滚动列表时,搜索栏才会出现在屏幕上。

这是预期的行为吗?

这是代码。

@State private var searchText = ""
let data = (1...50).map( {_ in Int.random(in: 1...10)} )

var body: some View {
    NavigationView {
        List {
            ForEach(data, id: \.self) { d in
                Text("\(d)")
            }
        }
    }.searchable(text: $searchText)
}
Run Code Online (Sandbox Code Playgroud)

滚动之前

在此输入图像描述

滚动后

在此输入图像描述

Asp*_*eri 19

这是默认行为,为了始终看到它,我们需要提供相应的位置,例如

NavigationView {
    List {
        ForEach(data, id: \.self) { d in
            Text("\(d)")
        }
    }
}
.searchable(text: $searchText, 
       placement: .navigationBarDrawer(displayMode: .always))  // << here !!
Run Code Online (Sandbox Code Playgroud)