Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 检测是否已安装自定义键盘_Ios_Objective C_Ios8_Ios App Extension_Custom Keyboard - Fatal编程技术网

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即使是,也没有证据表明我签署过保密协议,我可能只是一般性地问。。。回答的人也可能只是用他们的知识回答,而从未与苹果达成保密协议。:)完全同意。当问题被标记时,会让我非常恼火,因为所讨论的平台仍处于测试阶段。这个问题可能适合赏金。为什么您需要知道是否安装了自定义键盘?你确定你不只是需要它的高度或什么吗?你可以强制键盘显示而不需要用户交互。然后立即撤销它。