---
title: Input events
framework: swiftui
role: collectionGroup
role_heading: API Collection
path: swiftui/input-events
---

# Input events

Respond to input from a hardware device, like a keyboard or a Touch Bar.

## Overview

Overview SwiftUI provides view modifiers that enable your app to listen for and react to various kinds of user input. For example, you can create keyboard shortcuts, respond to a form submission, or take input from the digital crown of an Apple Watch.

For design guidance, see Inputs in the Human Interface Guidelines.

## Topics

### Responding to 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)
- [KeyPress](swiftui/keypress.md)

### Creating keyboard shortcuts

- [keyboardShortcut(_:)](swiftui/view/keyboardshortcut(_:).md)
- [keyboardShortcut(_:modifiers:)](swiftui/view/keyboardshortcut(_:modifiers:).md)
- [keyboardShortcut(_:modifiers:localization:)](swiftui/view/keyboardshortcut(_:modifiers:localization:).md)
- [keyboardShortcut](swiftui/environmentvalues/keyboardshortcut.md)
- [KeyboardShortcut](swiftui/keyboardshortcut.md)
- [KeyEquivalent](swiftui/keyequivalent.md)
- [EventModifiers](swiftui/eventmodifiers.md)

### Responding to modifier keys

- [onModifierKeysChanged(mask:initial:_:)](swiftui/view/onmodifierkeyschanged(mask:initial:_:).md)
- [modifierKeyAlternate(_:_:)](swiftui/view/modifierkeyalternate(_:_:).md)

### Responding to hover events

- [onHover(perform:)](swiftui/view/onhover(perform:).md)
- [onContinuousHover(coordinateSpace:perform:)](swiftui/view/oncontinuoushover(coordinatespace:perform:).md)
- [hoverEffect(_:isEnabled:)](swiftui/view/hovereffect(_:isenabled:).md)
- [hoverEffectDisabled(_:)](swiftui/view/hovereffectdisabled(_:).md)
- [defaultHoverEffect(_:)](swiftui/view/defaulthovereffect(_:).md)
- [isHoverEffectEnabled](swiftui/environmentvalues/ishovereffectenabled.md)
- [HoverPhase](swiftui/hoverphase.md)
- [HoverEffectPhaseOverride](swiftui/hovereffectphaseoverride.md)
- [OrnamentHoverContentEffect](swiftui/ornamenthovercontenteffect.md)
- [OrnamentHoverEffect](swiftui/ornamenthovereffect.md)

### Modifying pointer appearance

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

### Changing view appearance for hover events

- [hoverEffect(_:)](swiftui/view/hovereffect(_:).md)
- [HoverEffect](swiftui/hovereffect.md)
- [hoverEffect(_:in:isEnabled:)](swiftui/view/hovereffect(_:in:isenabled:).md)
- [hoverEffect(in:isEnabled:body:)](swiftui/view/hovereffect(in:isenabled:body:).md)
- [CustomHoverEffect](swiftui/customhovereffect.md)
- [ContentHoverEffect](swiftui/contenthovereffect.md)
- [HoverEffectGroup](swiftui/hovereffectgroup.md)
- [hoverEffectGroup()](swiftui/view/hovereffectgroup().md)
- [hoverEffectGroup(_:)](swiftui/view/hovereffectgroup(_:).md)
- [hoverEffectGroup(id:in:behavior:)](swiftui/view/hovereffectgroup(id:in:behavior:).md)
- [GroupHoverEffect](swiftui/grouphovereffect.md)
- [HoverEffectContent](swiftui/hovereffectcontent.md)
- [EmptyHoverEffectContent](swiftui/emptyhovereffectcontent.md)
- [handPointerBehavior(_:)](swiftui/view/handpointerbehavior(_:).md)
- [HandPointerBehavior](swiftui/handpointerbehavior.md)

### Responding to submission events

- [onSubmit(of:_:)](swiftui/view/onsubmit(of:_:).md)
- [submitScope(_:)](swiftui/view/submitscope(_:).md)
- [SubmitTriggers](swiftui/submittriggers.md)

### Labeling a submission event

- [submitLabel(_:)](swiftui/view/submitlabel(_:).md)
- [SubmitLabel](swiftui/submitlabel.md)

### Responding to commands

- [onMoveCommand(perform:)](swiftui/view/onmovecommand(perform:).md)
- [onDeleteCommand(perform:)](swiftui/view/ondeletecommand(perform:).md)
- [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)
- [MoveCommandDirection](swiftui/movecommanddirection.md)

### Controlling hit testing

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

### Interacting with the 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)
- [DigitalCrownEvent](swiftui/digitalcrownevent.md)
- [DigitalCrownRotationalSensitivity](swiftui/digitalcrownrotationalsensitivity.md)

### Managing Touch Bar input

- [touchBar(content:)](swiftui/view/touchbar(content:).md)
- [touchBar(_:)](swiftui/view/touchbar(_:).md)
- [touchBarItemPrincipal(_:)](swiftui/view/touchbaritemprincipal(_:).md)
- [touchBarCustomizationLabel(_:)](swiftui/view/touchbarcustomizationlabel(_:).md)
- [touchBarItemPresence(_:)](swiftui/view/touchbaritempresence(_:).md)
- [TouchBar](swiftui/touchbar.md)
- [TouchBarItemPresence](swiftui/touchbaritempresence.md)

### Responding to capture events

- [onCameraCaptureEvent(isEnabled:action:)](swiftui/view/oncameracaptureevent(isenabled:action:).md)
- [onCameraCaptureEvent(isEnabled:primaryAction:secondaryAction:)](swiftui/view/oncameracaptureevent(isenabled:primaryaction:secondaryaction:).md)

## See Also

### Event handling

- [Gestures](swiftui/gestures.md)
- [Clipboard](swiftui/clipboard.md)
- [Drag and drop](swiftui/drag-and-drop.md)
- [Focus](swiftui/focus.md)
- [System events](swiftui/system-events.md)
