KeyboardKit can trigger audio and haptic feedback.


Feedback is an important part of the typing experience, where the keyboard can play audio and trigger haptic feedback to indicate that the user has tapped a key or performed an action.

In KeyboardKit, feedback can be triggered with a KeyboardActionHandler or by triggering AudioFeedback and HapticFeedback directly.

Audio feedback

KeyboardKit has an AudioFeedback enum that defines various audio feedback types. It also serves as a namespace for types like AudioFeedback/Configuration and AudioFeedback/Engine.

Haptic feedback

KeyboardKit has an HapticFeedback enum that defines various haptic feedback types. It also serves as a namespace for types like HapticFeedback/Configuration and HapticFeedback/Engine.

How to configure feedback

KeyboardKit has an observable FeedbackConfiguration class that can be used to configure the feedback for various actions, for instance:

class KeyboardViewController: KeyboardInputViewController {

    override func viewDidLoad() {
        let config = state.feedbackConfiguration 
        config.audioConfiguration = .disabled
        config.audioConfiguration.input = .custom(id: 1329)
        config.hapticConfiguration = .enabled

Since the settings class is observable, any changes to it will automatically cause the keyboard view to update, e.g. if you have toggles for audio and haptic feedback.


The information on this page is shortened to be easier to overview. For more information about this feature, code samples, etc., please see the online documentation.