我试图以编程方式设置从左到右对齐的搜索栏文本,但似乎它在相反方向上添加文本(如英语),然后搜索没有结果。 感谢任何人的帮助。
答案 0 :(得分:1)
您尝试以这种方式做到吗?
searchbar.semanticContentAttribute = .forceRightToLeft
还要确保在测试时使用从右到左的语言来模拟模拟器/设备的键盘。
在模拟器上进行测试时,禁用“连接硬件键盘”(硬件->键盘->“连接硬件键盘”->删除复选标记)很有帮助,以便查看键盘布局。
答案 1 :(得分:1)
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
答案 2 :(得分:0)
您可以添加搜索栏以进行右对齐,如下所示 -
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
}
如果它能解决您的问题,请告诉我。
答案 3 :(得分:0)
如果仅使用 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