粘贴到UISearchController的UISearchBar时启用返回键

时间:2016-07-04 19:39:03

标签: ios objective-c swift uikit

我遇到了与bug report对Apple所描述的问题类似的问题。

基本上,将文字粘贴到UISearchBarUISearchController的一部分)时,键盘上未启用返回键。 (虽然在输入字符时会启用它。)

基本上,enablesReturnKeyAutomatically会被忽略,因为默认情况下此属性应为true

重现步骤:

  • UISearchBar的{​​{1}}成为第一响应者。
  • 将文字粘贴到UISearchController
  • 按键盘上的UISearchBar按钮

预期结果:

  • 已启用搜索按钮。

实际结果:

  • 搜索按钮保持禁用状态。

问题

即使这似乎是一个错误,是否有针对此特定问题的解决方法?特别是Twitter或Product Hunt等应用程序以某种方式绕过它。

1 个答案:

答案 0 :(得分:4)

以下将会这样做。请注意,如果粘贴到已有文本的搜索栏中,搜索按钮将已启用,因此只有在当前搜索文本为空时才需要特殊情况。

func searchBar(searchBar: UISearchBar, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
    if text.characters.count > 0 && range.length == 0 && range.location == 0 {
        dispatch_async(dispatch_get_main_queue()) {
            searchBar.resignFirstResponder()
            searchBar.becomeFirstResponder()
        }
    }
    return true
}