关闭UISearchBar键盘而不影响取消按钮

我正在尝试重现可以在iphone上的联系人应用程序中看到的功能。 我有一个UISearchBar,当点击搜索按钮时关闭键盘。 然而,这会取消激活取消按钮,需要2次触摸才能激活。 在联系人应用中,当点击搜索按钮并且键盘被解散时,它不会被停用。

所以我问的是如何关闭键盘而不关闭uiSearchBar上的取消按钮?

我努力了

func searchBarSearchButtonClicked(searchBar: UISearchBar) {

//Some other code

//I have Tried
//Attempt 1
 self.searchBar.endEditing(true)
//Attempt 2
  self.searchBar.resignFirstResponder()
//Attempt 3
  var textFieldInsideSearchBar = searchBar.valueForKey("searchField") as? UITextField
  textFieldInsideSearchBar.endEditing(true)

    }

委托方法解析你的searchBar ,所以你不必使用self.searchBar ,这可能是其中一个问题。 我通常使用你的“尝试2”中的逻辑。

您可以尝试执行此操作:

func searchBarTextDidEndEditing(_ searchBar: UISearchBar)

并调用searchBar.resignFirstResponder()

如果它不起作用,那么尝试实现此方法并返回true

func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool

如果您将UISearchBar与UISearchDisplatController结合使用,请在searchDisplayController上尝试以下方法:

func setActive(_ visible: Bool, animated animated;: Bool)

尝试,

[self.searchBar resignFirstResponder];
[(UIButton *)[self.searchBar valueForKey:@"_cancelButton"] setEnabled:YES];
链接地址: http://www.djcxy.com/p/7705.html

上一篇: Dismiss UISearchBar keyboard without affecting cancel button

下一篇: how to dismiss keyboard?