【发布时间】:2018-02-03 14:44:44
【问题描述】:
我试图以编程方式设置从左到右对齐的搜索栏文本,但似乎它添加了相反方向的文本(如英语),然后搜索没有结果。 感谢任何人的帮助。
【问题讨论】:
标签: swift swift3 uisearchbar swift4 uisearchbardelegate
我试图以编程方式设置从左到右对齐的搜索栏文本,但似乎它添加了相反方向的文本(如英语),然后搜索没有结果。 感谢任何人的帮助。
【问题讨论】:
标签: swift swift3 uisearchbar swift4 uisearchbardelegate
你有没有尝试过这样的方式?
searchbar.semanticContentAttribute = .forceRightToLeft
同时确保您在测试时使用从右到左的语言进行模拟器/设备键盘布局。
在模拟器上进行测试时禁用“连接硬件键盘”(硬件 -> 键盘 -> “连接硬件键盘” -> 删除复选标记)有助于查看键盘布局。
【讨论】:
var searchTextField: UITextField
if #available(iOS 13.0, *) {
searchTextField = searchController?.searchBar.searchTextField as! UITextField
} else {
searchTextField = searchController?.searchBar.value(forKey: "searchField") as! UITextField
}
searchTextField.textAlignment = .right
【讨论】:
您可以添加右对齐搜索栏,如下所示-
func addSearchController() {
let searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search"
navigationItem.searchController = searchController
definesPresentationContext = true
let searchTextField: UITextField = searchController.searchBar.value(forKey: "_searchField") as! UITextField
searchTextField.textAlignment = .right
}
如果它解决了您的问题,请告诉我。
【讨论】:
如果您只使用 UISearchbar,您可以使用以下方法更改对齐方式:
var searchTextField: UITextField
if #available(iOS 13.0, *) {
searchTextField = searchBar.searchTextField as UITextField
} else {
searchTextField = searchBar.value(forKey: "searchField") as! UITextField
}
searchTextField.textAlignment = .right
【讨论】: