将标题字符串设置为 iOS 设置包

Posted

技术标签:

【中文标题】将标题字符串设置为 iOS 设置包【英文标题】:Set Title String to Settings Bundle iOS 【发布时间】:2014-03-10 09:23:28 【问题描述】:

我需要根据 iphone 设置语言/用户首选语言动态本地化我的设置屏幕文本。在我的场景中,本地化文本是从服务器获取的。我将文本存储在数据库中并在屏幕上显示。设置屏幕应根据用户首选语言/设备语言进行本地化。我试图访问 Root.plist 中项目的标题字符串。但它返回值,但我需要标题。我如何访问/更改项目的标题。

例如:


        DefaultValue = 1;
        Key = "enabled_preference";
        Title = "Keep me logged in";
        Type = PSToggleSwitchSpecifier;
    

[[NSUserDefaults standardUserDefaults]valueForKey:@"enabled_preference"]; 

它返回值为 1,但我需要标题“让我登录”,这需要更改。

我需要一个“标题”来本地化(即)而不是使用 .lproj 文件,我在字典中有一组本地化字符串。我需要用字典中的值设置标题。

我怎样才能做到这一点。

谢谢

【问题讨论】:

我不确定我是否理解了这个问题,但是如果你想为一个键设置一个值,试试这个 [[NSUserDefaults standardUserDefaults] setObject:@"the object" forKey:@"enabled_preference" ] ;!!如果您不是在寻找这个,请详细说明 @Harsh:我编辑了我的问题。我需要获取“标题”字符串(即)让我保持登录状态。我需要将其更改为我在字典中拥有的不同语言字符串。 试试这个 [[NSUserDefaults standardUserDefaults] setObject:NSLocalizedString(@"title", @"Comments") forKey:@"title" ];这能解决您的问题吗? 没有。它不工作。 setObject:forKey(forKey 总是匹配字典中的“Key”) 所以实际上你想先获取所有键,然后本地化它们,然后再本地化它们? 【参考方案1】:

这是一种获取所有值和键的方法。

这可能会对你有所帮助,获取所有密钥并遍历每个人以获取您正在寻找的密钥

所有值:

NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allValues]);

所有键:

NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]);

所有键和值:

NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

用于:

NSArray *keys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys];

for(NSString* key in keys)
// your code here
NSLog(@"value: %@ forKey: %@",[[NSUserDefaults standardUserDefaults] valueForKey:key],key);
  

【讨论】:

以上是关于将标题字符串设置为 iOS 设置包的主要内容,如果未能解决你的问题,请参考以下文章

在iOS5中以不同方式绘制Unicode字符

ios 8 键盘扩展设置包

在 iOS 中将属性字符串设置为 UILabel

设置包中的只读字符串

iOS5 中 Unicode 字符的绘制方式不同

为 iOS 使用描述 Info.plist 键设置空字符串