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
Scroll controls
scrollPosition(_:anchor:)scrollPosition(id:anchor:)defaultScrollAnchor(_:)defaultScrollAnchor(_:for:)scrollTargetBehavior(_:)scrollTargetLayout(isEnabled:)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:)onLongPressGesture(minimumDuration:maximumDistance: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(_:)
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(_:_:)
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
onDrag(_:preview:)onDrag(_:)itemProvider(_:)onDrop(of:isTargeted:perform:)onDrop(of:delegate:)dropDestination(for:action:isTargeted:)draggable(_:)draggable(_:preview:)springLoadingBehavior(_:)
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:)
Immersive Spaces
Volumes
User activities
userActivity(_:element:_:)userActivity(_:isActive:_:)onContinueUserActivity(_:perform:)handlesExternalEvents(preferring:allowing:)
View life cycle
File renaming
URLs
Publisher events
Hit testing
Content shape
Import and export
exportsItemProviders(_:onExport:)exportsItemProviders(_:onExport:onEdit:)importsItemProviders(_:onImport:)exportableToServices(_:)exportableToServices(_:onEdit:)importableFromServices(for:action:)