自动聚焦于可搜索的

NoK*_*Key 12 swift swiftui

我正在使用新的可搜索修饰符:https://developer.apple.com/documentation/swiftui/form/searchable(text:placement:)。当用户使用该修饰符进入视图时,该文本字段不会自动聚焦。

有没有办法让注意力集中在 上searchable?这是我的观点,它被称为NavigationLink

import SwiftUI

struct UserFindView: View {
    @State private var searchText = ""

    var body: some View {
        Text("Please search")
                .searchable(text: $searchText)
                .navigationTitle("Title")
                .navigationBarTitleDisplayMode(.inline)
    }
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*iel 0

从 iOS 17 开始,您现在可以使用.searchable(text: Binding<String>, isPresented: Binding<Bool>)

struct ContentView: View {
    @State private var searchText = ""
    @State private var isSearching = false
    private let fruits = ["apple", "banana", "plum", "grape"]
    
    var filteredFruits: [String] {
        if !searchText.isEmpty {
             return fruits.filter { $0.starts(with: searchText.lowercased()) }
        } else {
            return fruits
        }
    }

    var body: some View {
        NavigationView {
            List {
                ForEach(filteredFruits, id: \.self) { fruit in
                    Text(fruit.capitalized)
                }
            }
            .navigationBarTitle("Search")
            .searchable(text: $searchText, isPresented: $isSearching)
            

             Button("Search", action: { isSearching = true})
        }
    }
}
Run Code Online (Sandbox Code Playgroud)