Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 单击searchbutton,停止UISearchDisplayController退出第一响应者_Objective C_Ios_Cocoa Touch - Fatal编程技术网

Objective c 单击searchbutton,停止UISearchDisplayController退出第一响应者

Objective c 单击searchbutton,停止UISearchDisplayController退出第一响应者,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,我有一个UISearchDisplayController,我希望在单击键盘的搜索按钮时避免在搜索后关闭键盘。 我试图使用另一篇文章中的Josh Cashwell的解决方案:设置UISearchBarDelegate并实现SearchBarShoulDediting。但我有一个问题要抓住正确的事件: SearchBarShouldEndEditing在任何情况下(即单击视图中的任何其他位置,拖动ResultableView,…)都应返回yes,但单击search按钮时除外 我的实施: 我试图在s

我有一个
UISearchDisplayController
,我希望在单击键盘的搜索按钮时避免在搜索后关闭键盘。 我试图使用另一篇文章中的Josh Cashwell的解决方案:设置
UISearchBarDelegate
并实现
SearchBarShoulDediting
。但我有一个问题要抓住正确的事件:
SearchBarShouldEndEditing
在任何情况下(即单击视图中的任何其他位置,拖动ResultableView,…)都应返回yes,但单击search按钮时除外

我的实施: 我试图在
searchBarSearchButtonClicked
中设置一个变量,并在
SearchBarShoulDediting
中使用它来确定是否返回
YES
NO
。在反复提示Searchtext并按search时工作正常,但在按search后单击视图中的任何其他位置时,键盘不会关闭

因此,希望有一种更好的方法来检查是否因为单击搜索按钮而调用了
SearchBar是否应该取消编辑
,但我不明白


非常感谢你的帮助

当用户单击键盘上的“搜索”按钮时,为什么不希望键盘消失


但是无论如何。。。我解决这个问题的方法是,在
搜索栏中应该取消编辑:
委托方法(在它返回
YES
之前),创建希望键盘为新的第一响应者保留的文本字段(通过UIResponder的方法)。这样,键盘就没有理由关闭。

当用户单击键盘上的“搜索”按钮时,为什么您不希望键盘消失


但是无论如何。。。我解决这个问题的方法是,在
搜索栏中应该取消编辑:
委托方法(在它返回
YES
之前),创建希望键盘为新的第一响应者保留的文本字段(通过UIResponder的方法)。这样,键盘就没有理由不使用。

解决方法:使用NSTimeInterval来节省按下Searchbutton的时间。在搜索栏上,应将“从现在到现在的时间差”设置为选中的已保存值。If(diff<0.001){return NO;}else{return YES;}我不知道这是否是一个智能解决方案,但它可以工作。

已解决:使用NSTimeInterval来节省按下Searchbutton的时间。在搜索栏上,应将“从现在到现在的时间差”设置为选中的已保存值。如果(diff<0.001){return NO;}否则{return YES;}我不知道这是否是一个明智的解决方案,但它确实有效。

嗨,Michael,非常感谢您的回复。问题是:becomeFirstResponder不能与UISearchDisplayController一起工作。我不想每次都设置焦点。我不是告诉你在
UISearchDisplayController
上调用
成为第一响应者,而是在任何其他文本字段上(不是
UISearchDisplayController
的一部分)问题是:becomeFirstResponder不能与UISearchDisplayController一起工作(我试图在searchBarSearchButtonClicked中调用它-它不能工作)。我不想每次在SearchBar中设置焦点都应该取消编辑。以下是背景:可以使用扫描仪在搜索栏中输入文本。扫描仪在扫描后发送enter。扫描后,焦点应停留在搜索栏上,这样您就不必点击搜索栏重新开始扫描。但是,当用户手动向外制表时,焦点将丢失。如果没有SearchDisplayController,仅使用searchBar,您必须手动呼叫resignfirstresponder,但使用SearchDisplayController,则按search时焦点将自动丢失。-这是我的经验。嗯。。。我现在完全搞不懂你想干什么。也许其他人看这个问题会对你有更好的理解和更好的答案。嗨,迈克尔,非常感谢你的回答。问题是:becomeFirstResponder不能与UISearchDisplayController一起工作。我不想每次都设置焦点。我不是告诉你在
UISearchDisplayController
上调用
成为第一响应者,而是在任何其他文本字段上(不是
UISearchDisplayController
的一部分)问题是:becomeFirstResponder不能与UISearchDisplayController一起工作(我试图在searchBarSearchButtonClicked中调用它-它不能工作)。我不想每次在SearchBar中设置焦点都应该取消编辑。以下是背景:可以使用扫描仪在搜索栏中输入文本。扫描仪在扫描后发送enter。扫描后,焦点应停留在搜索栏上,这样您就不必点击搜索栏重新开始扫描。但是,当用户手动向外制表时,焦点将丢失。如果没有SearchDisplayController,仅使用searchBar,您必须手动呼叫resignfirstresponder,但使用SearchDisplayController,则按search时焦点将自动丢失。-这是我的经验。嗯。。。我现在完全搞不懂你想干什么。也许其他人看这个问题会对你有更好的理解和更好的答案。