如何检测当前正在使用哪个自定义键盘(ios 8)进行文本输入

时间:2014-12-13 09:50:54

标签: ios objective-c ios8 ios-app-extension custom-keyboard

我正在使用此解决方案(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和其他资源,但没有找到任何解决方案。有没有办法在我的应用程序中检测当前为文本输入选择哪个自定义键盘?

谢谢!

1 个答案:

答案 0 :(得分:-2)

请查看此UIApplication API方法以禁用自定义键盘:

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

也许您可以修改UIApplicationKeyboardExtensionPointIdentifier的值以满足您的需求