ひとしれずひっそり

主にソフトに関することをメモしていきます。過程をそのまま書いていたりするので間違いが含まれます。鵜呑みしない様に。

editMode

developer.apple.com

EnvironmentValuesとして扱っている。

ドキュメントより

@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()
    }
}

編集モードの場合に TextField を使い、そうでない場合は Text を使うという事ができる。
.toolbar で編集ボタンを表示している。

変更する場合は下の様に書く。onAppear()内で書けば編集モードで開ける。

editMode?.wrappedValue = .active