Input and event modifiers
Supply actions for a view to perform in response to user input and system events.
Overview
Use input and event modifiers to configure and provide handlers for a wide variety of user inputs or system events. For example, you can detect and control focus, respond to life cycle events like view appearance and disappearance, manage keyboard shortcuts, and much more.
Topics
Interactivity
List controls
Container controls
Scroll controls
scrollPosition(_:anchor:)scrollPosition(id:anchor:)defaultScrollAnchor(_:)defaultScrollAnchor(_:for:)scrollTargetBehavior(_:)scrollTargetLayout(isEnabled:)scrollInputBehavior(_:for:)scrollTransition(_:axis:transition:)scrollTransition(topLeading:bottomTrailing:axis:transition:)onScrollGeometryChange(for:of:action:)onScrollTargetVisibilityChange(idType:threshold:_:)onScrollVisibilityChange(threshold:_:)onScrollPhaseChange(_:)
Geometry
Taps and gestures
onTapGesture(count:perform:)onTapGesture(count:coordinateSpace:perform:)onTapGesture(count:coordinateSpace:inputKinds:perform:)onLongPressGesture(minimumDuration:maximumDistance:perform:onPressingChanged:)onLongPressGesture(minimumDuration:maximumDistance:inputKinds:perform:onPressingChanged:)onLongPressGesture(minimumDuration:perform:onPressingChanged:)onLongTouchGesture(minimumDuration:perform:onTouchingChanged:)gesture(_:)gesture(_:isEnabled:)gesture(_:name:isEnabled:)gesture(_:including:)highPriorityGesture(_:including:)highPriorityGesture(_:isEnabled:)highPriorityGesture(_:name:isEnabled:)simultaneousGesture(_:including:)simultaneousGesture(_:isEnabled:)simultaneousGesture(_:name:isEnabled:)defersSystemGestures(on:)onPencilDoubleTap(perform:)onPencilSqueeze(perform:)allowsWindowActivationEvents()allowsWindowActivationEvents(_:)
Keyboard input
onKeyPress(_:action:)onKeyPress(phases:action:)onKeyPress(_:phases:action:)onKeyPress(characters:phases:action:)onKeyPress(keys:phases:action:)onModifierKeysChanged(mask:initial:_:)
Keyboard shortcuts
keyboardShortcut(_:)keyboardShortcut(_:modifiers:)keyboardShortcut(_:modifiers:localization:)modifierKeyAlternate(_:_:)
Hand interactions
handGestureShortcut(_:isEnabled:)handPointerBehavior(_:)manipulable(coordinateSpace:operations:inertia:isEnabled:onChanged:)manipulable(transform:coordinateSpace:operations:inertia:isEnabled:onChanged:)manipulable(using:)manipulationGesture(updating:coordinateSpace:operations:inertia:isEnabled:onChanged:)
Hover
onHover(perform:)onContinuousHover(coordinateSpace:perform:)hoverEffect(_:)hoverEffect(_:isEnabled:)hoverEffect(_:in:isEnabled:)hoverEffect(in:isEnabled:body:)hoverEffectGroup()hoverEffectGroup(_:)hoverEffectGroup(id:in:behavior:)hoverEffectDisabled(_:)defaultHoverEffect(_:)listRowHoverEffect(_:)listRowHoverEffectDisabled(_:)
Pointer
Focus
focused(_:equals:)focused(_:)focusedValue(_:)focusedValue(_:_:)focusedSceneValue(_:)focusedSceneValue(_:_:)focusedObject(_:)focusedSceneObject(_:)prefersDefaultFocus(_:in:)focusScope(_:)focusSection()focusable(_:)focusable(_:interactions:)focusEffectDisabled(_:)defaultFocus(_:_:priority:)searchFocused(_:)searchFocused(_:equals:)
Copy and paste
copyable(_:)cuttable(for:action:)pasteDestination(for:action:validator:)onCopyCommand(perform:)onCutCommand(perform:)onPasteCommand(of:perform:)onPasteCommand(of:validator:perform:)
Drag and drop
dragConfiguration(_:)dragContainer(for:in:_:)dragContainer(for:itemID:in:_:)dragContainerSelection(_:containerNamespace:)dragPreviewsFormation(_:)draggable(_:)draggable(_:preview:)draggable(_:containerNamespace:_:)draggable(_:id:containerNamespace:_:)draggable(_:id:item:containerNamespace:)draggable(_:item:containerNamespace:)draggable(containerItemID:containerNamespace:)dropConfiguration(_:)dropDestination(for:isEnabled:action:)dropPreviewsFormation(_:)itemProvider(_:)onDrag(_:preview:)onDrag(_:)onDragSessionUpdated(_:)onDrop(of:isTargeted:perform:)onDrop(of:delegate:)onDropSessionUpdated(_:)springLoadingBehavior(_:)
Reordering
reorderContainer(for:isEnabled:move:)reorderContainer(for:in:isEnabled:move:)reorderContainer(for:itemID:isEnabled:move:)reorderContainer(for:itemID:in:isEnabled:move:)
Submission
onAssignedDocumentDidSubmit(_:)onAssignedDocumentDidWithdraw(_:)onAssignedDocumentWillSubmit(_:)onAssignedDocumentWillWithdraw(_:)onSubmit(of:_:)submitScope(_:)submitLabel(_:)
Movement
Deletion
Commands
Digital crown
digitalCrownAccessory(_:)digitalCrownAccessory(content:)digitalCrownRotation(_:from:through:sensitivity:isContinuous:isHapticFeedbackEnabled:onChange:onIdle:)digitalCrownRotation(_:onChange:onIdle:)digitalCrownRotation(detent:from:through:by:sensitivity:isContinuous:isHapticFeedbackEnabled:onChange:onIdle:)digitalCrownRotation(_:)digitalCrownRotation(_:from:through:by:sensitivity:isContinuous:isHapticFeedbackEnabled:)
Game controller
Immersive spaces
Volumes
User activities
userActivity(_:element:_:)userActivity(_:isActive:_:)onContinueUserActivity(_:perform:)handlesExternalEvents(preferring:allowing:)
View life cycle
onAppear(perform:)onDisappear(perform:)onChange(of:initial:_:)task(id:name:executorPreference:priority:file:line:_:)task(id:name:priority:file:line:_:)task(name:executorPreference:priority:file:line:action:)task(name:priority:file:line:_:)
File renaming
URLs
Asyncronous image loading
Publisher events
Hit testing
Content shape
Import and export
exportsItemProviders(_:onExport:)exportsItemProviders(_:onExport:onEdit:)importsItemProviders(_:onImport:)exportableToServices(_:)exportableToServices(_:onEdit:)importableFromServices(for:action:)
App intents
appEntityIdentifier(_:)appEntityIdentifier(forSelectionType:identifier:)appEntityUIElements(_:)onAppIntentExecution(_:perform:)shortcutsLinkStyle(_:)siriTipViewStyle(_:)