StaticControlConfiguration
The description of a control that has no user-configurable options.
Declaration
@MainActor @preconcurrency struct StaticControlConfiguration<Content> where Content : ControlWidgetTemplateOverview
The following example shows the configuration for a garage door opener control.
struct GarageDoorOpener: ControlWidget {
var body: some ControlWidgetConfiguration {
StaticControlConfiguration(
kind: "com.yourcompany.GarageDoorOpener",
provider: GarageDoorValueProvider()
) { isOpen in
ControlWidgetToggle(
"Garage Door",
isOn: isOpen,
action: ToggleGarageDoor()
) {
Label(
$0 ? "Open" : "Closed",
systemImage: $0 ? "door.garage.open" : "door.garage.closed"
)
}
}
}
}Every control has a unique kind, a string that you choose to uniquely identify the type of control. You use this string to identify your control when reloading its template with ControlCenter.
The value provider is an object that determines a value to use to render your template.
The content closure defines the template that WidgetKit needs to render the control. If you create the configuration using a value provider, when WidgetKit invokes the content closure, it passes a value created by the provider’s previewValue property or currentValue() function.