Как определить, какая пользовательская клавиатура (ios 8) в настоящее время используется для ввода текста

Я использую это решение (https://stackoverflow.com/a/25786928), чтобы обнаружить все пользовательские клавиатуры, активированные в приложении Settins ( iOS 8):

- (void)printoutAllActiveKeyboards {
   // Array of all active keyboards
   NSArray *keyboards = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] objectForKey:@"AppleKeyboards"]; 
   for (NSString *keyboard in keyboards)
      NSLog(@"Custom keyboard: %@", keyboard);
}

Но этого недостаточно для моего проекта - мне нужно знать, какая пользовательская клавиатура в данный момент выбрана пользователем для ввода текста. У меня есть исследование stackoverflow и другие ресурсы, но я не нашел решения для этого. Есть ли способ определить в моем приложении, какая пользовательская клавиатура в настоящее время выбрана для ввода текста?

Благодарю вас!


person Lukasz Kowalski    schedule 13.12.2014    source источник
comment
Не уверен, что этот вопрос по-прежнему актуален для вас сегодня, но для всех, кто приходит к этому вопросу, здесь есть решение, которое все еще работает в 2018 году: stackoverflow.com/a/26368224/7349426   -  person JohnV    schedule 25.07.2018


Ответы (1)


Взгляните на этот метод UIApplication API для отключения пользовательских клавиатур:

- (BOOL)application:(UIApplication *)application shouldAllowExtensionPointIdentifier:(NSString *)extensionPointIdentifier {
    if ([extensionPointIdentifier isEqualToString: UIApplicationKeyboardExtensionPointIdentifier]) {
         return NO;
    }
    return YES;
}

Возможно, вы можете изменить значение UIApplicationKeyboardExtensionPointIdentifier в соответствии с вашими потребностями.

person nurnachman    schedule 17.12.2014
comment
Вопрос в том, как узнать, какая пользовательская клавиатура выбрана в данный момент. Не отключать пользовательскую клавиатуру. Этот API помогает только отключить пользовательскую клавиатуру. - person TomSawyer; 27.01.2016