ios - 如何更改 Xcode Playground 上的语言环境

标签 ios xcode swift localization locale

我想更改 Xcode Playground 上的语言环境以测试本地化。

我找到了这个解决方案,但它在 Xcode 6.3.2 Playground 上不起作用: http://natashatherobot.com/locale-playground-swift/

最佳答案

哦,我找到了解决办法!

extension NSLocale {
    class func mono_currentLocale() -> NSLocale {
        return NSLocale(localeIdentifier: "fr")
    }
}
let original = class_getClassMethod(NSLocale.self, #selector(getter: NSLocale.currentLocale))
let swizzled = class_getClassMethod(NSLocale.self, #selector(NSLocale.mono_currentLocale))
method_exchangeImplementations(original, swizzled)

编辑:Swift 4.1 版本:

extension NSLocale {
    @objc class func mono_currentLocale() -> NSLocale {
        return NSLocale(localeIdentifier: "fr")
    }
}
let original = class_getClassMethod(NSLocale.self, #selector(getter: NSLocale.current))!
let swizzled = class_getClassMethod(NSLocale.self, #selector(NSLocale.mono_currentLocale))!
method_exchangeImplementations(original, swizzled)

关于ios - 如何更改 Xcode Playground 上的语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31065859/

相关文章:

ios - 强制 SFSafariViewController 加载网站的桌面版本

ios - 如何隐藏 iOS 框架的私有(private)模块?

ios - 自更新到 iOS 10.2 后几帧后无法在 GLKView 上绘制 CIImage?

ios - 如何使标签与屏幕尺寸成比例?

iphone - 来自一个代码库的三个略有不同的应用程序

ios - UIPageViewController 委托(delegate)不触发横向

Swift Parse 搜索栏不起作用

ios - ScrollView 中同时居中和滚动的约束

iphone - 如何仅从结果集中获取用户名

iOS:我的应用已在应用商店中后,在哪里更改它的名称?