本文はあとで書く。
dismissSearch()
を実行すれば、検索モードがオフになり、検索バーに入力していたテキストもキーボードも消える。
- Sets isSearching to false.
- Clears any text from the search field.
- Removes focus from the search field.
当初は、以下のように実装した。しかし dismissSearch()
を実行してもうまく動かなかった。
struct ParentView: View { @State private var searchText = "" @Environment(\.dismissSearch) private var dismissSearch var body: some View { VStack { Text(searchText) Button(action: { dismissSearch() } ) { Text("Dissmiss search") } } .searchable(text: $searchText) } }
dismissSearch()
は searchable モディファイアを設定した、子View でないと有効ではなかった。
struct ParentView: View { @State private var searchText = "" var body: some View { ChildView(searchText: searchText) .searchable(text: $searchText) } } struct ChildView: View { @Environment(\.dismissSearch) private var dismissSearch let searchText: String var body: some View { Text(searchText) Button(action: { dismissSearch() } ) { Text("Dissmiss search") } } }