Contents

selectionDisabled(_:)

Adds a condition that controls whether users can select this view.

Declaration

nonisolated func selectionDisabled(_ isDisabled: Bool = true) -> some View

Parameters

  • isDisabled:

    A Boolean value that determines whether users can select this view.

Discussion

Use this modifier to control the selectability of views in selectable containers like List or Table. In the example, below, the user can’t select the first item in the list.

@Binding var selection: Item.ID?
@Binding var items: [Item]

var body: some View {
    List(selection: $selection) {
        ForEach(items) { item in
            ItemView(item: item)
                .selectionDisabled(item.id == items.first?.id)
        }
    }
}

You can also use this modifier to specify the selectability of views within a Picker. The following example represents a flavor picker that disables selection on flavors that are unavailable.

Picker("Flavor", selection: $selectedFlavor) {
    ForEach(Flavor.allCases) { flavor in
        Text(flavor.rawValue.capitalized)
            .selectionDisabled(isSoldOut(flavor))
    }
}

See Also

Configuring interaction