Ios 检测是否已安装自定义键盘
我已经阅读了文档,似乎找不到任何方法来检测设置>常规>键盘中是否安装了自定义键盘Ios 检测是否已安装自定义键盘,ios,objective-c,ios8,ios-app-extension,custom-keyboard,Ios,Objective C,Ios8,Ios App Extension,Custom Keyboard,我已经阅读了文档,似乎找不到任何方法来检测设置>常规>键盘中是否安装了自定义键盘 有人知道吗?这可以通过NSUserDefaults实现。只需检索standardUserDefaults对象,该对象包含用户为键“AppleKeyboards”安装的所有键盘的数组。然后检查数组是否包含键盘扩展的绑定标识符 NSArray *keyboards = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleKeyboards"]; NSLo
有人知道吗?这可以通过
NSUserDefaults
实现。只需检索standardUserDefaults
对象,该对象包含用户为键“AppleKeyboards”安装的所有键盘的数组。然后检查数组是否包含键盘扩展的绑定标识符
NSArray *keyboards = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleKeyboards"];
NSLog(@"keyboards: %@", keyboards);
// check for your keyboard
NSUInteger index = [keyboards indexOfObject:@"com.example.productname.keyboard-extension"];
if (index != NSNotFound) {
NSLog(@"found keyboard");
}
这对我有用
func isKeyboardExtensionEnabled()->Bool{
guard let appBundleIdentifier=Bundle.main.bundleIdentifier else{
fatalError(“isKeyboardExtensionEnabled():无法检索包标识符。”)
}
guard let keyboards=UserDefaults.standard.dictionaryRepresentation()[“AppleKeyboards”]作为?[String]其他{
//NSUserDefaults中没有“AppleKeyboards”键。这种情况有时会发生。
返回错误
}
让KeyboardExtensionBundleIdentifier前缀=appBundleIdentifier+”
用于键盘中的键盘{
if keyboard.hasPrefix(keyboardExtensionBundleIdentifierPrefix){
返回真值
}
}
返回错误
}
NDA与此问题无关@CrimsonChris即使是,也没有证据表明我签署过保密协议,我可能只是一般性地问。。。回答的人也可能只是用他们的知识回答,而从未与苹果达成保密协议。:)完全同意。当问题被标记时,会让我非常恼火,因为所讨论的平台仍处于测试阶段。这个问题可能适合赏金。为什么您需要知道是否安装了自定义键盘?你确定你不只是需要它的高度或什么吗?你可以强制键盘显示而不需要用户交互。然后立即撤销它。