gpt4 book ai didi

ios 8 键盘扩展设置包

转载 作者:技术小花猫 更新时间:2023-10-29 11:08:45 25 4
gpt4 key购买 nike

我正在尝试为 ios 8 上的自定义键盘扩展创 build 置包。我已将设置包添加到键盘扩展目标。然后,当加载键盘 View 时,我尝试通过以下方式访问设置包。

BOOL autoCapitalizationEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"autoCapitalizationEnabled"];

结果一直是0,好像是程序访问不到setting bundle文件。

有没有人遇到过扩展设置包的问题?顺便说一下,这件事与设置包的默认值无关,因为每次我在键盘启动之前禁用和启用设置上的这个属性以强制使用默认值。

最佳答案

虽然你在Setting.bundle的每一项都设置了DefaultValue,但它不会写在你的NSUserDefaults上,所以当你从NSUserDefaults中检索时,它会返回一个null(在这个例子中,一个“0”,或者NO , 任何)。

按照以下步骤在首次启动时对 NSUserDefaults 进行设置。

首先你会检查你是否已经检查并设置了默认值:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

if ([userDefaults boolForKey:@"PreferenceFirstSetup"]) {

//return if you already done the job once.
return;
}

如果没有,让我们设置默认值......

[userDefaults setBool:YES forKey:@"PreferenceFirstSetup"];

NSString *settingsPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"Settings.bundle"];
NSString *rootPath = [settingsPath stringByAppendingPathComponent:@"Root.plist"];

NSDictionary *settingsDictionary = [NSDictionary dictionaryWithContentsOfFile:rootPath];
NSArray *preferencesArray = [settingsDictionary objectForKey:@"PreferenceSpecifiers"];

for (NSDictionary *item in preferencesArray) {

NSString *key = [item objectForKey:@"Key"];
id defaultValue = [item objectForKey:@"DefaultValue"];

if (key && defaultValue)
[userDefaults setObject:defaultValue forKey:key];
}

//Save on disk
[userDefaults synchronize];

现在,您应该能够访问默认值。希望对您有所帮助!

关于ios 8 键盘扩展设置包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25404453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com