---
title: Input and event modifiers
framework: swiftui
role: collectionGroup
role_heading: API Collection
path: swiftui/view-input-and-events
---

# Input and event modifiers

Supply actions for a view to perform in response to user input and system events.

## Overview

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

- [disabled(_:)](swiftui/view/disabled(_:).md)
- [interactionActivityTrackingTag(_:)](swiftui/view/interactionactivitytrackingtag(_:).md)

### List controls

- [swipeActions(edge:allowsFullSwipe:content:)](swiftui/view/swipeactions(edge:allowsfullswipe:content:).md)
- [refreshable(action:)](swiftui/view/refreshable(action:).md)
- [selectionDisabled(_:)](swiftui/view/selectiondisabled(_:).md)

### Container controls

- [swipeActions(edge:allowsFullSwipe:content:onPresentationChanged:)](swiftui/view/swipeactions(edge:allowsfullswipe:content:onpresentationchanged:).md)
- [swipeActionsContainer()](swiftui/view/swipeactionscontainer().md)

### Scroll controls

- [scrollPosition(_:anchor:)](swiftui/view/scrollposition(_:anchor:).md)
- [scrollPosition(id:anchor:)](swiftui/view/scrollposition(id:anchor:).md)
- [defaultScrollAnchor(_:)](swiftui/view/defaultscrollanchor(_:).md)
- [defaultScrollAnchor(_:for:)](swiftui/view/defaultscrollanchor(_:for:).md)
- [scrollTargetBehavior(_:)](swiftui/view/scrolltargetbehavior(_:).md)
- [scrollTargetLayout(isEnabled:)](swiftui/view/scrolltargetlayout(isenabled:).md)
- [scrollInputBehavior(_:for:)](swiftui/view/scrollinputbehavior(_:for:).md)
- [scrollTransition(_:axis:transition:)](swiftui/view/scrolltransition(_:axis:transition:).md)
- [scrollTransition(topLeading:bottomTrailing:axis:transition:)](swiftui/view/scrolltransition(topleading:bottomtrailing:axis:transition:).md)
- [onScrollGeometryChange(for:of:action:)](swiftui/view/onscrollgeometrychange(for:of:action:).md)
- [onScrollTargetVisibilityChange(idType:threshold:_:)](swiftui/view/onscrolltargetvisibilitychange(idtype:threshold:_:).md)
- [onScrollVisibilityChange(threshold:_:)](swiftui/view/onscrollvisibilitychange(threshold:_:).md)
- [onScrollPhaseChange(_:)](swiftui/view/onscrollphasechange(_:).md)

### Geometry

- [onGeometryChange(for:of:action:)](swiftui/view/ongeometrychange(for:of:action:).md)
- [onGeometryChange3D(for:of:action:)](swiftui/view/ongeometrychange3d(for:of:action:).md)
- [onInteractiveResizeChange(_:)](swiftui/view/oninteractiveresizechange(_:).md)

### Taps and gestures

- [onTapGesture(count:perform:)](swiftui/view/ontapgesture(count:perform:).md)
- [onTapGesture(count:coordinateSpace:perform:)](swiftui/view/ontapgesture(count:coordinatespace:perform:).md)
- [onTapGesture(count:coordinateSpace:inputKinds:perform:)](swiftui/view/ontapgesture(count:coordinatespace:inputkinds:perform:).md)
- [onLongPressGesture(minimumDuration:maximumDistance:perform:onPressingChanged:)](swiftui/view/onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:).md)
- [onLongPressGesture(minimumDuration:maximumDistance:inputKinds:perform:onPressingChanged:)](swiftui/view/onlongpressgesture(minimumduration:maximumdistance:inputkinds:perform:onpressingchanged:).md)
- [onLongPressGesture(minimumDuration:perform:onPressingChanged:)](swiftui/view/onlongpressgesture(minimumduration:perform:onpressingchanged:).md)
- [onLongTouchGesture(minimumDuration:perform:onTouchingChanged:)](swiftui/view/onlongtouchgesture(minimumduration:perform:ontouchingchanged:).md)
- [gesture(_:)](swiftui/view/gesture(_:).md)
- [gesture(_:isEnabled:)](swiftui/view/gesture(_:isenabled:).md)
- [gesture(_:name:isEnabled:)](swiftui/view/gesture(_:name:isenabled:).md)
- [gesture(_:including:)](swiftui/view/gesture(_:including:).md)
- [highPriorityGesture(_:including:)](swiftui/view/highprioritygesture(_:including:).md)
- [highPriorityGesture(_:isEnabled:)](swiftui/view/highprioritygesture(_:isenabled:).md)
- [highPriorityGesture(_:name:isEnabled:)](swiftui/view/highprioritygesture(_:name:isenabled:).md)
- [simultaneousGesture(_:including:)](swiftui/view/simultaneousgesture(_:including:).md)
- [simultaneousGesture(_:isEnabled:)](swiftui/view/simultaneousgesture(_:isenabled:).md)
- [simultaneousGesture(_:name:isEnabled:)](swiftui/view/simultaneousgesture(_:name:isenabled:).md)
- [defersSystemGestures(on:)](swiftui/view/deferssystemgestures(on:).md)
- [onPencilDoubleTap(perform:)](swiftui/view/onpencildoubletap(perform:).md)
- [onPencilSqueeze(perform:)](swiftui/view/onpencilsqueeze(perform:).md)
- [allowsWindowActivationEvents()](swiftui/view/allowswindowactivationevents().md)
- [allowsWindowActivationEvents(_:)](swiftui/view/allowswindowactivationevents(_:).md)

### Keyboard input

- [onKeyPress(_:action:)](swiftui/view/onkeypress(_:action:).md)
- [onKeyPress(phases:action:)](swiftui/view/onkeypress(phases:action:).md)
- [onKeyPress(_:phases:action:)](swiftui/view/onkeypress(_:phases:action:).md)
- [onKeyPress(characters:phases:action:)](swiftui/view/onkeypress(characters:phases:action:).md)
- [onKeyPress(keys:phases:action:)](swiftui/view/onkeypress(keys:phases:action:).md)
- [onModifierKeysChanged(mask:initial:_:)](swiftui/view/onmodifierkeyschanged(mask:initial:_:).md)

### Keyboard shortcuts

- [keyboardShortcut(_:)](swiftui/view/keyboardshortcut(_:).md)
- [keyboardShortcut(_:modifiers:)](swiftui/view/keyboardshortcut(_:modifiers:).md)
- [keyboardShortcut(_:modifiers:localization:)](swiftui/view/keyboardshortcut(_:modifiers:localization:).md)
- [modifierKeyAlternate(_:_:)](swiftui/view/modifierkeyalternate(_:_:).md)

### Hand interactions

- [handGestureShortcut(_:isEnabled:)](swiftui/view/handgestureshortcut(_:isenabled:).md)
- [handPointerBehavior(_:)](swiftui/view/handpointerbehavior(_:).md)
- [manipulable(coordinateSpace:operations:inertia:isEnabled:onChanged:)](swiftui/view/manipulable(coordinatespace:operations:inertia:isenabled:onchanged:).md)
- [manipulable(transform:coordinateSpace:operations:inertia:isEnabled:onChanged:)](swiftui/view/manipulable(transform:coordinatespace:operations:inertia:isenabled:onchanged:).md)
- [manipulable(using:)](swiftui/view/manipulable(using:).md)
- [manipulationGesture(updating:coordinateSpace:operations:inertia:isEnabled:onChanged:)](swiftui/view/manipulationgesture(updating:coordinatespace:operations:inertia:isenabled:onchanged:).md)

### Hover

- [onHover(perform:)](swiftui/view/onhover(perform:).md)
- [onContinuousHover(coordinateSpace:perform:)](swiftui/view/oncontinuoushover(coordinatespace:perform:).md)
- [hoverEffect(_:)](swiftui/view/hovereffect(_:).md)
- [hoverEffect(_:isEnabled:)](swiftui/view/hovereffect(_:isenabled:).md)
- [hoverEffect(_:in:isEnabled:)](swiftui/view/hovereffect(_:in:isenabled:).md)
- [hoverEffect(in:isEnabled:body:)](swiftui/view/hovereffect(in:isenabled:body:).md)
- [hoverEffectGroup()](swiftui/view/hovereffectgroup().md)
- [hoverEffectGroup(_:)](swiftui/view/hovereffectgroup(_:).md)
- [hoverEffectGroup(id:in:behavior:)](swiftui/view/hovereffectgroup(id:in:behavior:).md)
- [hoverEffectDisabled(_:)](swiftui/view/hovereffectdisabled(_:).md)
- [defaultHoverEffect(_:)](swiftui/view/defaulthovereffect(_:).md)
- [listRowHoverEffect(_:)](swiftui/view/listrowhovereffect(_:).md)
- [listRowHoverEffectDisabled(_:)](swiftui/view/listrowhovereffectdisabled(_:).md)

### Pointer

- [pointerVisibility(_:)](swiftui/view/pointervisibility(_:).md)
- [pointerStyle(_:)](swiftui/view/pointerstyle(_:).md)

### Focus

- [focused(_:equals:)](swiftui/view/focused(_:equals:).md)
- [focused(_:)](swiftui/view/focused(_:).md)
- [focusedValue(_:)](swiftui/view/focusedvalue(_:).md)
- [focusedValue(_:_:)](swiftui/view/focusedvalue(_:_:).md)
- [focusedSceneValue(_:)](swiftui/view/focusedscenevalue(_:).md)
- [focusedSceneValue(_:_:)](swiftui/view/focusedscenevalue(_:_:).md)
- [focusedObject(_:)](swiftui/view/focusedobject(_:).md)
- [focusedSceneObject(_:)](swiftui/view/focusedsceneobject(_:).md)
- [prefersDefaultFocus(_:in:)](swiftui/view/prefersdefaultfocus(_:in:).md)
- [focusScope(_:)](swiftui/view/focusscope(_:).md)
- [focusSection()](swiftui/view/focussection().md)
- [focusable(_:)](swiftui/view/focusable(_:).md)
- [focusable(_:interactions:)](swiftui/view/focusable(_:interactions:).md)
- [focusEffectDisabled(_:)](swiftui/view/focuseffectdisabled(_:).md)
- [defaultFocus(_:_:priority:)](swiftui/view/defaultfocus(_:_:priority:).md)
- [searchFocused(_:)](swiftui/view/searchfocused(_:).md)
- [searchFocused(_:equals:)](swiftui/view/searchfocused(_:equals:).md)

### Copy and paste

- [copyable(_:)](swiftui/view/copyable(_:).md)
- [cuttable(for:action:)](swiftui/view/cuttable(for:action:).md)
- [pasteDestination(for:action:validator:)](swiftui/view/pastedestination(for:action:validator:).md)
- [onCopyCommand(perform:)](swiftui/view/oncopycommand(perform:).md)
- [onCutCommand(perform:)](swiftui/view/oncutcommand(perform:).md)
- [onPasteCommand(of:perform:)](swiftui/view/onpastecommand(of:perform:).md)
- [onPasteCommand(of:validator:perform:)](swiftui/view/onpastecommand(of:validator:perform:).md)

### Drag and drop

- [dragConfiguration(_:)](swiftui/view/dragconfiguration(_:).md)
- [dragContainer(for:in:_:)](swiftui/view/dragcontainer(for:in:_:).md)
- [dragContainer(for:itemID:in:_:)](swiftui/view/dragcontainer(for:itemid:in:_:).md)
- [dragContainerSelection(_:containerNamespace:)](swiftui/view/dragcontainerselection(_:containernamespace:).md)
- [dragPreviewsFormation(_:)](swiftui/view/dragpreviewsformation(_:).md)
- [draggable(_:)](swiftui/view/draggable(_:).md)
- [draggable(_:preview:)](swiftui/view/draggable(_:preview:).md)
- [draggable(_:containerNamespace:_:)](swiftui/view/draggable(_:containernamespace:_:).md)
- [draggable(_:id:containerNamespace:_:)](swiftui/view/draggable(_:id:containernamespace:_:).md)
- [draggable(_:id:item:containerNamespace:)](swiftui/view/draggable(_:id:item:containernamespace:).md)
- [draggable(_:item:containerNamespace:)](swiftui/view/draggable(_:item:containernamespace:).md)
- [draggable(containerItemID:containerNamespace:)](swiftui/view/draggable(containeritemid:containernamespace:).md)
- [dropConfiguration(_:)](swiftui/view/dropconfiguration(_:).md)
- [dropDestination(for:isEnabled:action:)](swiftui/view/dropdestination(for:isenabled:action:).md)
- [dropPreviewsFormation(_:)](swiftui/view/droppreviewsformation(_:).md)
- [itemProvider(_:)](swiftui/view/itemprovider(_:).md)
- [onDrag(_:preview:)](swiftui/view/ondrag(_:preview:).md)
- [onDrag(_:)](swiftui/view/ondrag(_:).md)
- [onDragSessionUpdated(_:)](swiftui/view/ondragsessionupdated(_:).md)
- [onDrop(of:isTargeted:perform:)](swiftui/view/ondrop(of:istargeted:perform:).md)
- [onDrop(of:delegate:)](swiftui/view/ondrop(of:delegate:).md)
- [onDropSessionUpdated(_:)](swiftui/view/ondropsessionupdated(_:).md)
- [springLoadingBehavior(_:)](swiftui/view/springloadingbehavior(_:).md)

### Reordering

- [reorderContainer(for:isEnabled:move:)](swiftui/view/reordercontainer(for:isenabled:move:).md)
- [reorderContainer(for:in:isEnabled:move:)](swiftui/view/reordercontainer(for:in:isenabled:move:).md)
- [reorderContainer(for:itemID:isEnabled:move:)](swiftui/view/reordercontainer(for:itemid:isenabled:move:).md)
- [reorderContainer(for:itemID:in:isEnabled:move:)](swiftui/view/reordercontainer(for:itemid:in:isenabled:move:).md)

### Submission

- [onAssignedDocumentDidSubmit(_:)](swiftui/view/onassigneddocumentdidsubmit(_:).md)
- [onAssignedDocumentDidWithdraw(_:)](swiftui/view/onassigneddocumentdidwithdraw(_:).md)
- [onAssignedDocumentWillSubmit(_:)](swiftui/view/onassigneddocumentwillsubmit(_:).md)
- [onAssignedDocumentWillWithdraw(_:)](swiftui/view/onassigneddocumentwillwithdraw(_:).md)
- [onSubmit(of:_:)](swiftui/view/onsubmit(of:_:).md)
- [submitScope(_:)](swiftui/view/submitscope(_:).md)
- [submitLabel(_:)](swiftui/view/submitlabel(_:).md)

### Movement

- [onMoveCommand(perform:)](swiftui/view/onmovecommand(perform:).md)
- [moveDisabled(_:)](swiftui/view/movedisabled(_:).md)

### Deletion

- [onDeleteCommand(perform:)](swiftui/view/ondeletecommand(perform:).md)
- [deleteDisabled(_:)](swiftui/view/deletedisabled(_:).md)

### Commands

- [pageCommand(value:in:step:)](swiftui/view/pagecommand(value:in:step:).md)
- [onExitCommand(perform:)](swiftui/view/onexitcommand(perform:).md)
- [onPlayPauseCommand(perform:)](swiftui/view/onplaypausecommand(perform:).md)
- [onCommand(_:perform:)](swiftui/view/oncommand(_:perform:).md)

### Digital crown

- [digitalCrownAccessory(_:)](swiftui/view/digitalcrownaccessory(_:).md)
- [digitalCrownAccessory(content:)](swiftui/view/digitalcrownaccessory(content:).md)
- [digitalCrownRotation(_:from:through:sensitivity:isContinuous:isHapticFeedbackEnabled:onChange:onIdle:)](swiftui/view/digitalcrownrotation(_:from:through:sensitivity:iscontinuous:ishapticfeedbackenabled:onchange:onidle:).md)
- [digitalCrownRotation(_:onChange:onIdle:)](swiftui/view/digitalcrownrotation(_:onchange:onidle:).md)
- [digitalCrownRotation(detent:from:through:by:sensitivity:isContinuous:isHapticFeedbackEnabled:onChange:onIdle:)](swiftui/view/digitalcrownrotation(detent:from:through:by:sensitivity:iscontinuous:ishapticfeedbackenabled:onchange:onidle:).md)
- [digitalCrownRotation(_:)](swiftui/view/digitalcrownrotation(_:).md)
- [digitalCrownRotation(_:from:through:by:sensitivity:isContinuous:isHapticFeedbackEnabled:)](swiftui/view/digitalcrownrotation(_:from:through:by:sensitivity:iscontinuous:ishapticfeedbackenabled:).md)

### Game controller

- [handlesGameControllerEvents(matching:)](swiftui/view/handlesgamecontrollerevents(matching:).md)
- [handlesGameControllerEvents(matching:withOptions:)](swiftui/view/handlesgamecontrollerevents(matching:withoptions:).md)

### Immersive spaces

- [onImmersionChange(initial:_:)](swiftui/view/onimmersionchange(initial:_:).md)
- [onWorldRecenter(action:)](swiftui/view/onworldrecenter(action:).md)
- [immersiveEnvironmentPicker(content:)](swiftui/view/immersiveenvironmentpicker(content:).md)

### Volumes

- [onVolumeViewpointChange(updateStrategy:initial:_:)](swiftui/view/onvolumeviewpointchange(updatestrategy:initial:_:).md)
- [supportedVolumeViewpoints(_:)](swiftui/view/supportedvolumeviewpoints(_:).md)

### User activities

- [userActivity(_:element:_:)](swiftui/view/useractivity(_:element:_:).md)
- [userActivity(_:isActive:_:)](swiftui/view/useractivity(_:isactive:_:).md)
- [onContinueUserActivity(_:perform:)](swiftui/view/oncontinueuseractivity(_:perform:).md)
- [handlesExternalEvents(preferring:allowing:)](swiftui/view/handlesexternalevents(preferring:allowing:).md)

### View life cycle

- [onAppear(perform:)](swiftui/view/onappear(perform:).md)
- [onDisappear(perform:)](swiftui/view/ondisappear(perform:).md)
- [onChange(of:initial:_:)](swiftui/view/onchange(of:initial:_:).md)
- [task(id:name:executorPreference:priority:file:line:_:)](swiftui/view/task(id:name:executorpreference:priority:file:line:_:).md)
- [task(id:name:priority:file:line:_:)](swiftui/view/task(id:name:priority:file:line:_:).md)
- [task(name:executorPreference:priority:file:line:action:)](swiftui/view/task(name:executorpreference:priority:file:line:action:).md)
- [task(name:priority:file:line:_:)](swiftui/view/task(name:priority:file:line:_:).md)

### File renaming

- [renameAction(_:)](swiftui/view/renameaction(_:).md)

### URLs

- [onOpenURL(perform:)](swiftui/view/onopenurl(perform:).md)
- [onOpenURL(prefersInApp:)](swiftui/view/onopenurl(prefersinapp:).md)
- [widgetURL(_:)](swiftui/view/widgeturl(_:).md)

### Asyncronous image loading

- [asyncImageURLSession(_:)](swiftui/view/asyncimageurlsession(_:).md)

### Publisher events

- [onReceive(_:perform:)](swiftui/view/onreceive(_:perform:).md)

### Hit testing

- [allowsHitTesting(_:)](swiftui/view/allowshittesting(_:).md)

### Content shape

- [contentShape(_:eoFill:)](swiftui/view/contentshape(_:eofill:).md)
- [contentShape(_:_:eoFill:)](swiftui/view/contentshape(_:_:eofill:).md)

### Import and export

- [exportsItemProviders(_:onExport:)](swiftui/view/exportsitemproviders(_:onexport:).md)
- [exportsItemProviders(_:onExport:onEdit:)](swiftui/view/exportsitemproviders(_:onexport:onedit:).md)
- [importsItemProviders(_:onImport:)](swiftui/view/importsitemproviders(_:onimport:).md)
- [exportableToServices(_:)](swiftui/view/exportabletoservices(_:).md)
- [exportableToServices(_:onEdit:)](swiftui/view/exportabletoservices(_:onedit:).md)
- [importableFromServices(for:action:)](swiftui/view/importablefromservices(for:action:).md)

### App intents

- [appEntityIdentifier(_:)](swiftui/view/appentityidentifier(_:).md)
- [appEntityIdentifier(forSelectionType:identifier:)](swiftui/view/appentityidentifier(forselectiontype:identifier:).md)
- [appEntityUIElements(_:)](swiftui/view/appentityuielements(_:).md)
- [onAppIntentExecution(_:perform:)](swiftui/view/onappintentexecution(_:perform:).md)
- [shortcutsLinkStyle(_:)](swiftui/view/shortcutslinkstyle(_:).md)
- [siriTipViewStyle(_:)](swiftui/view/siritipviewstyle(_:).md)

### Camera

- [onCameraCaptureEvent(isEnabled:action:)](swiftui/view/oncameracaptureevent(isenabled:action:).md)
- [onCameraCaptureEvent(isEnabled:defaultSoundDisabled:action:)](swiftui/view/oncameracaptureevent(isenabled:defaultsounddisabled:action:).md)
- [onCameraCaptureEvent(isEnabled:defaultSoundDisabled:primaryAction:secondaryAction:)](swiftui/view/oncameracaptureevent(isenabled:defaultsounddisabled:primaryaction:secondaryaction:).md)
- [onCameraCaptureEvent(isEnabled:primaryAction:secondaryAction:)](swiftui/view/oncameracaptureevent(isenabled:primaryaction:secondaryaction:).md)
- [cameraAnchor(isActive:)](swiftui/view/cameraanchor(isactive:).md)

## See Also

### Providing interactivity

- [Search modifiers](swiftui/view-search.md)
- [Presentation modifiers](swiftui/view-presentation.md)
- [State modifiers](swiftui/view-state.md)
