Воспроизведение звука щелчка системы в расширении клавиатуры iOS

Я следовал инструкциям по обеим этим ссылкам:

Как воспроизвести звук щелчка клавиатуры на пользовательской клавиатуре?

https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/InputViews/InputViews.html

и сделал следующее:

заголовок:

@interface Key : UIView <UIInputViewAudioFeedback>

реализация:

- (BOOL) enableInputClicksWhenVisible {
    return YES;
}

- (void)tapped:(UITapGestureRecognizer *)sender
{
    [[UIDevice currentDevice] playInputClick];
    [self.delegate keyHit:_title];
}

Тем не менее, это все еще не работает. Что я пропустил?


person user906357    schedule 27.09.2014    source источник


Ответы (2)


Попробуйте этот код в любое время, когда вы хотите воспроизвести звук щелчка системы в расширении клавиатуры:

+ (void)keyboardClickSound {

    // Check system preference for current setting of Keyboard Click Sound.
    CFStringRef applicationID = CFSTR("/var/mobile/Library/Preferences/com.apple.preferences.sounds");
    Boolean keyExistsAndHasValidFormat;
    BOOL enableInputClicks
    = CFPreferencesGetAppBooleanValue(CFSTR("keyboard"), applicationID, &keyExistsAndHasValidFormat);

    // Note: If the key does not exist because it has never been changed by a user,
    //       set it to the default, YES.
    if (!keyExistsAndHasValidFormat)
        enableInputClicks = YES;

    // Play Keyboard Click Sound, if enabled.
    // Note: If Open Access=Off, no click sound.
    if (enableInputClicks)
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
                   ^{ AudioServicesPlaySystemSound(1104); });
}
person NeonBerry    schedule 10.05.2015

Если ваше приложение расширения клавиатуры содержит поле "RequestsOpenAccess" со значением YES,
тогда для звука щелчка клавиатуры необходимо установить для параметра "Разрешить полный доступ" значение "Вкл." в настройках
Общие > Клавиатура > Клавиатуры > Your_keyboard.

Если он выключен, вы не можете воспроизводить звук клавиш клавиатуры.

person Amit Bhavsar    schedule 11.05.2015