Contents

onKeyPress(_:action:)

Performs an action if the user presses a key on a hardware keyboard while the view has focus.

Declaration

nonisolated func onKeyPress(_ key: KeyEquivalent, action: @escaping () -> KeyPress.Result) -> some View

Parameters

  • key:

    The key to match against incoming hardware keyboard events.

  • action:

    The action to perform. Return .handled to consume the event and prevent further dispatch, or .ignored to allow dispatch to continue.

Return Value

A modified view that binds hardware keyboard input when focused.

Discussion

SwiftUI performs the action for key-down and key-repeat events.

The following example plays or pauses a video when someone presses the space bar:

PlayerView(item: item)
    .focusable()
    .onKeyPress(.space) {
        player.togglePlayback()
        return .handled
    }

See Also

Responding to keyboard input