ios 在rtl语言中,UISearchBar文本不是从右到左开始的

uqxowvwt  于 2023-03-05  发布在  iOS
关注(0)|答案(3)|浏览(151)

我试图输入一个文本到一个rtl语言的搜索栏,问题是,当我尝试这样做与rtl语言作为默认的键盘上,它开始在错误的方向,当我切换键盘从英语到rtl语言,它的工作刚刚好。

当前结果

预期结果

我试过将搜索栏的语义属性设置为从右到左,但似乎不起作用。

xghobddn

xghobddn1#

是的,你可以使用UITextFiled containInstance属性来完成。只需添加一个语言检查即可。

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
    }
zrfyljdw

zrfyljdw2#

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

searchbar.semanticContentAttribute = .forceRightToLeft

测试时,还要确保您使用 * 从右到左的语言进行模拟器/设备键盘布局 *。它不能正常使用英语键盘布局。
在模拟器上测试时,禁用“连接硬件键盘”(硬件-〉键盘-〉“连接硬件键盘”-〉删除复选标记)有助于查看键盘布局。

e5nqia27

e5nqia273#

您可以将以下内容添加到makeUIView函数中,这两项都是必需的:

searchBar.semanticContentAttribute = .forceRightToLeft
searchBar.searchTextField.textAlignment = .right

相关问题