小编cal*_*kus的帖子

在iOS中本地化字符串:默认(后备)语言?

有没有办法设置在应用程序不支持设备UI语言时使用的默认语言?

示例:我的应用已本地化为英语和德语:

// en.lproj:
"POWER_TO_THE_PEOPLE_BTN" = "Power";
"POWER_PLUG_BTN" = "Power";

// de.lproj:
"POWER_TO_THE_PEOPLE_BTN"  = "Macht";
"POWER_PLUG_BTN" = "Spannung";
Run Code Online (Sandbox Code Playgroud)

现在,如果我在设置为Italian应用程序的UI语言的设备上运行应用程序将使用键字符串POWER_TO_THE_PEOPLE_BTNPOWER_PLUG_BTN.

必须有一种方法来指定应用程序在这种情况下使用的默认(回退)语言.

从上面的例子中可以清楚地看出,使用英文字符串作为键是行不通的.

我现在看到的唯一选择是使用NSLocalizedStringWithDefaultValue而不是NSLocalizedString.

localization internationalization ios

39
推荐指数
4
解决办法
3万
查看次数

如何大写NSString的每个单词

我试图找出如何获取给定的NSString并将其转换为驼峰的情况.我已经看到很多代码样本在underscores_和camel-case之间来回传递,但我正在处理大写的字符串.

所以,如果我有字符串: 12345 SAMPLE STREET #12或者789 N HASKELL STREET,我怎么能将它们转换为12345 Sample Street #12789 N Haskell Street

对不起,如果这是一个愚蠢的问题,但我对objective-c/cocoa框架世界很新.

cocoa cocoa-touch objective-c

15
推荐指数
1
解决办法
8786
查看次数

如何设置视图框架宽度?(为什么我不能直接设置?)

我想重置一个UIView的帧大小,所以我写道:

view.frame.size.width = x;
Run Code Online (Sandbox Code Playgroud)

但它不起作用,谁能告诉我为什么?

iphone positioning objective-c uiview ios

9
推荐指数
2
解决办法
1万
查看次数

iOS,CLLocationManager:显示"重新启用位置服务"弹出窗口

如果关闭位置服务(在用户曾经允许服务之后),然后启动位置更新,则应显示系统弹出窗口.(文档在[CLLocationmanager locationServicesEnabled]的描述中如此说明)

但是,如果我设置一个测试项目,它只是初始化一个CLLocationManager然后调用startLocationUpdates,那么弹出窗口不会出现在每个应用程序启动时.但是如果我理解文档的话应该这样吗?

我不是在讨论第一个弹出窗口,它要求用户允许或拒绝该应用程序的位置使用.我在谈论弹出窗口,它要求用户重新启用设置中的位置服务.该弹出窗口有一个指向设置应用程序的直接按钮.如果您禁用位置服务而不是打开地图应用,则可以看到它.每次按下locate-me按钮时,都会出现弹出窗口.截图:

截图Maps App Popup

我希望它在每个应用程序启动时可靠地显示,以防服务被禁用.(其他应用程序以相同的方式执行,例如aroundme)

谢谢你,马库斯

iphone location core-location ios

7
推荐指数
1
解决办法
1209
查看次数

如何将JSON字符串转换为NSArray?

我在将NSString转换为NSArray时遇到了问题.

我的字符串是:

["Default", "Discipleship", "Faith", "Family", "Hope", 
 "Life Building", "Love", "Missions", "Relationships"]
Run Code Online (Sandbox Code Playgroud)

我想要做的是从这个字符串中获取元素(Default,Discipleship等)并将它们放入NSArray中.

我已经尝试了很多但是无法完成它,请帮助任何帮助都会很棒,提前谢谢

json objective-c nsstring nsarray

5
推荐指数
1
解决办法
7051
查看次数

NSLocalizedString不起作用

我想在我的应用程序中使用NSLocalizedString,但它总是失败.我做的是:

  • 在项目属性中定义3个本地化(见下面的截图)
  • 创建一个新文件:Resource Strings File
  • 如果file.strings在那里,请检查应用程序包

然后我使用NSLocalizedStrings如下,但它不起作用!

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
    NSString *v1 = NSLocalizedString(@"MyWindow", nil);

    //NSString *v1 = [[NSBundle mainBundle] localizedStringForKey:(@"MyWindow") value:@"" table:nil];
    [label setStringValue:v1];
}
Run Code Online (Sandbox Code Playgroud)

在我的3 .strings文件中,我定义了下面的键/值:"MyWindow"="Ma Fenetre";

通常,我的标签应显示"Ma Fenetre"而不是"MyWindows"您可以在此处下载示例项目并告诉我问题在哪里.

Bellow我的应用包中的Resources文件夹的内容:

DerivedData om$ find test/Build/Products/Debug/test.app/Contents/Resources/
test/Build/Products/Debug/test.app/Contents/Resources/
test/Build/Products/Debug/test.app/Contents/Resources//de.lproj
test/Build/Products/Debug/test.app/Contents/Resources//de.lproj/File.strings
test/Build/Products/Debug/test.app/Contents/Resources//en.lproj
test/Build/Products/Debug/test.app/Contents/Resources//en.lproj/File.strings
test/Build/Products/Debug/test.app/Contents/Resources//fr.lproj
test/Build/Products/Debug/test.app/Contents/Resources//fr.lproj/File.strings
test/Build/Products/Debug/test.app/Contents/Resources//MainMenu.nib
Run Code Online (Sandbox Code Playgroud)

谢谢Elfoiros

xcode cocoa-touch localization objective-c ios

3
推荐指数
3
解决办法
8492
查看次数