我有一个UISearchDisplayController
,我希望在点击键盘的搜索按钮后避免在搜索后关闭键盘。
我尝试使用其他帖子的Josh Cashwell解决方案:设置UISearchBarDelegate
并实施SearchBarShouldEndEditing
。但是我有一个问题要抓住正确的事件:
SearchBarShouldEndEditing
在任何情况下都应返回yes(即,单击视图中的任何其他位置,拖动resulttableview,...),除非单击搜索按钮。
我的实施:
我尝试在searchBarSearchButtonClicked
中设置变量并在searchBarShouldEndEditing
中使用它来确定我是否会返回YES
或NO
。在迭代地倾斜Searchtext并按下搜索时工作正常,但在按下搜索后单击视图中的任何其他位置时,键盘不会关闭。
所以希望有一种更好的方法来检查是否因为点击搜索按钮而调用了searchBarShouldEndEditing
,但是我没有得到它。
非常感谢你的帮助!!
答案 0 :(得分:0)
当用户点击键盘上的“搜索”按钮时,为什么键盘不会消失?
但无论如何......我解决问题的方法是在你的searchBarShouldEndEditing:
委托方法中(在它返回YES
之前),制作你想要键盘保持的文本字段新的第一响应者(通过UIResponder的becomeFirstResponder
方法)。这样键盘没有理由解雇。
答案 1 :(得分:0)
解决:使用NSTimeInterval来节省按下Searchbutton的时间。在SearchBarShouldEndEdiing时差从现在到保存的值被检查。 if(diff <0.001){return NO;} else {return YES;}我不知道这是否是一个聪明的解决方案,但它确实有效。