在Swift UITest中从右到左检测语言

时间:2017-04-20 12:49:47

标签: ios swift xcode automated-tests xcode-ui-testing

我正在尝试设置我的UITests进行本地化。特别是阿拉伯语和任何其他 从右到左(RTL) 语言。

在我的情况下,我的swipe(direction: SwipeDirection)函数的值为SwipeDirection.up, .down, .left, .right)。

如果我现在想要删除,请说出一个单元格,我只是cell.swipe(.left)而我的UITest会删除该单元格。由于UI在 RTL语言上翻转,因此必须更改为cell.swipe(.right)

我找不到任何检测当前设备语言的方法,也没有UILayoutDirection

我已经尝试过这样检查:

let isLeftToRight = UIView.userInterfaceLayoutDirection(for: UIView().semanticContentAttribute) == .leftToRight

以及

let isLeftToRight = UIApplication.shared.userInterfaceLayoutDirection == .leftToRight

但无论语言如何,他们两人总是返回true。 有没有其他方法可以检查我不知道的当前UILayoutDirection

谢谢!

1 个答案:

答案 0 :(得分:2)

在文档

中找不到那么难
let locale = NSLocale.autoupdatingCurrent
let lang = locale.languageCode
let direction = NSLocale.characterDirection(forLanguage:lang!)