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

smn*_*mnk 3 xcode automated-tests ios swift 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
Run Code Online (Sandbox Code Playgroud)

并且

let isLeftToRight = UIApplication.shared.userInterfaceLayoutDirection == .leftToRight
Run Code Online (Sandbox Code Playgroud)

true但无论语言如何,他们俩总是会回来。UILayoutDirection还有其他方法可以检查我不知道的电流吗?

谢谢你!

ada*_*oto 5

在文档中并不难找到

let locale = NSLocale.autoupdatingCurrent
let lang = locale.languageCode
let direction = NSLocale.characterDirection(forLanguage:lang!)
Run Code Online (Sandbox Code Playgroud)