searchPresentationToolbarBehaviorは、SwiftUIで検索バーの表示動作を制御するために使用されます。
デフォルトの動作においては、検索フィールドに文字を入力する際にツールバーのコンテンツが非表示になります。
このプロパティを設定することで、検索時にもツールバーのコンテンツを表示したままにすることができます。
基本的な使い方
searchPresentationToolbarBehaviorには、以下の3つのオプションがあります:
.automatic: デフォルトの動作を使用します.avoidHidingContent: 常にツールバーのコンテンツを表示します
サンプルコード
以下はリストビューに、ツールバー上部にボタンと検索フィールドを表示しています。
searchPresentationToolbarBehaviorのオプションを切り替えることで、検索フィールド入力時のツールバー表示、非表示を切り替えられます。
import SwiftUI
struct searchPresentationToolbarBehaviorSmp: View {
@State private var searchText = ""
var body: some View {
NavigationStack {
List {
ForEach(0..<100) { index in
Text("Item \(index)")
}
}
.toolbar {
ToolbarItem(placement: .confirmationAction) {
Button(action: {
print("confirmation button tapped")
}) {
Image(systemName: "star")
}
}
ToolbarItem(placement: .cancellationAction) {
Button(action: {
print("cancellation button tapped")
}) {
Image(systemName: "heart")
}
}
}
.searchable(text: $searchText, placement:.navigationBarDrawer(displayMode: .always), prompt: "検索文字列")
.navigationTitle("Searchable List")
.searchPresentationToolbarBehavior(.automatic)
}
}
}サンプルコードの動作
searchPresentationToolbarBehaviorにおいて、avoidHidingContentを指定すると、右側のように検索フィールドに文字列を入力してもツールバーのコンテンツを表示したままにすることができます。


まとめ
earchPresentationToolbarBehaviorを使用することで、SwiftUIアプリケーションにおける検索バーの表示動作を簡単に制御することができます。細かい部分ですが、よければ参考にしてください。

