FindContext
The status of the find navigator for views which support text editing.
Declaration
struct FindContextOverview
Views which support text editing can use this information to implement a a find navigator that is controlled using the modifiers used for controlling the find navigator throughout the rest of SwiftUI.
For example, the following shows a minimal find navigator implementation driven by the find context which falls back to local state if no isPresented binding is provided:
struct FindNavigatorDrivenTextInput: View {
@State var text: String = ""
@State var showFindNavigator = false
@Environment(\.findContext) var findContext
var body: some View {
MyTextInputView(text: $text)
.overlay(alignment: .topTrailing) {
if let context = findContext &&
context.isPresented?.wrappedValue ?? showFindNavigator
{
HStack {
FindInputView(text: text)
if context.allowedOperations == .findAndReplace {
ReplaceInputView(text: $text)
}
Button("Close") {
context.isPresented?.wrappedValue = false
showFindNavigator = false
}
}
} else {
Button("Show Find Navigator") {
context.isPresented?.wrappedValue = true
showFindNavigator = true
}
}
}
}
}