Instance Property インスタンスプロパティ

editMode

An indication of whether the user can edit the contents of a view associated with this environment.

Declaration 宣言

var editMode: Binding<EditMode>? { get set }

Discussion 議論

Read this environment value to receive a optional binding to the edit mode state. The binding contains an EditMode value that indicates whether edit mode is active, and that you can use to change the mode. To learn how to read an environment value, see EnvironmentValues.

Certain built-in views automatically alter their appearance and behavior in edit mode. For example, a List with a ForEach that’s configured with the onDelete(perform:) or onMove(perform:) modifier provides controls to delete or move list items while in edit mode. On iOS and tvOS, lists present the selection interface only when edit mode is active.

You can also customize your own views to react to edit mode. The following example replaces a read-only Text view with an editable TextField, checking for edit mode by testing the wrapped value’s isEditing property:


@Environment(\.editMode) private var editMode
@State private var name = "Maria Ruiz"


var body: some View {
    Form {
        if editMode?.wrappedValue.isEditing == true {
            TextField("Name", text: $name)
        } else {
            Text(name)
        }
    }
    .animation(nil, value: editMode?.wrappedValue)
    .toolbar { // Assumes embedding this view in a NavigationView.
        EditButton()
    }
}

You can set the edit mode through the binding, or you can rely on an EditButton to do that for you, as the example above demonstrates. The button activates edit mode when the user taps the Edit button, and disables editing mode when the user taps Done.

See Also 参照

State 状態