iosobjective-ccocoa-touchcustom-keyboard

How to play keyboard click sound in custom keyboard?


I had created custom keyboard with UIView. However, I didn't hear the click sound of the keyboard. So I tried following code, but I can't hear anything. How can I play that keyboard click sound?

NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
                                               pathForResource:@"Tock"
                                               ofType:@"aiff"]];
    AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
    [click setVolume:0.15f];
    [click play];

And also I tried this:

AudioServicesPlaySystemSound(0x450);

How can I achieve this?


Solution

  • Try this:

    [[UIDevice currentDevice] playInputClick];
    

    Note that

    Use this method to play the standard system keyboard click in response to a user tapping in a custom input or keyboard accessory view. A click plays only if the user has enabled keyboard clicks in Settings > Sounds, and only if the input view is itself enabled and visible.

    To enable a custom input or accessory view for input clicks, perform the following two steps:

    Adopt the UIInputViewAudioFeedback protocol in your input view class. Implement the enableInputClicksWhenVisible delegate method to return YES.