【问题标题】:SWIFT UISearchBar Text Aligned incorrectly from right to leftSWIFT UISearchBar 文本从右到左对齐不正确
【发布时间】:2018-02-03 14:44:44
【问题描述】:

我试图以编程方式设置从左到右对齐的搜索栏文本,但似乎它添加了相反方向的文本(如英语),然后搜索没有结果。 感谢任何人的帮助。

【问题讨论】:

    标签: swift swift3 uisearchbar swift4 uisearchbardelegate


    【解决方案1】:

    你有没有尝试过这样的方式?

     searchbar.semanticContentAttribute = .forceRightToLeft
    

    同时确保您在测试时使用从右到左的语言进行模拟器/设备键盘布局。

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

    【讨论】:

    • 还可以加上: if let tfOfSearchBar = self.searchBar.value(forKey: "searchField") as? UITextField { tfOfSearchBar.textAlignment = .right }
    【解决方案2】:
        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
    

    【讨论】:

      【解决方案3】:

      您可以添加右对齐搜索栏,如下所示-

          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
      }
      

      如果它解决了您的问题,请告诉我。

      【讨论】:

      • 如果您投了反对票,发表评论总是很高兴。
      • 到处搜索后,这是我找到的唯一答案。在其他任何地方都没有关于如何更改搜索栏中文本对齐方式的答案。
      【解决方案4】:

      如果您只使用 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
      

      【讨论】:

        猜你喜欢
        • 2018-01-05
        • 1970-01-01
        • 1970-01-01
        • 2021-02-08
        • 2016-08-10
        • 1970-01-01
        • 2020-09-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多