UISearchBar文本不是在rtl语言上从右到左开始

时间:2018-07-03 07:45:26

标签: ios swift swift4 uisearchbar uisearchcontroller

我正在尝试使用rtl语言在搜索栏中输入文本,问题是,当我尝试使用rtl语言作为键盘上的默认语言进行操作时,当我从英语切换键盘时,它的输入方向错误到rtl语言就可以了。

当前结果

所需结果

我尝试将searchbar语义属性设置为从右到左,但似乎不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

是的,您可以使用UITextFiled containsInstance属性来实现。 只需添加语言检查即可。

if myLanguage == "ar" {
        UISearchBar.appearance().semanticContentAttribute = .forceRightToLeft
        UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).textAlignment = .right
    }else{
        UISearchBar.appearance().semanticContentAttribute = .forceLeftToRight
        UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).textAlignment = .left
    }

答案 1 :(得分:0)

请使用此代码(如您所说):

 searchbar.semanticContentAttribute = .forceRightToLeft

在测试时,还请确保您使用的是从右到左语言的模拟器/设备键盘布局。它无法正确使用英文键盘布局。

在模拟器上进行测试时,禁用“连接硬件键盘”(硬件->键盘->“连接硬件键盘”->删除复选标记)很有帮助,以便查看键盘布局。