UISearchBar选择所有文本

Mik*_*nov 6 selectall objective-c uisearchbar ios

有没有办法选择UISearchBar中的所有文本?我尝试了[searchBar selectALL:],但它抛出了信号(无法识别的选择器).

我想允许用户更改以前的搜索文本.在某个时候,当用户刚刚开始输入新请求时,旧的请求应该被解雇.如何实现它的标准方法 - 在文本开始编辑时选择所有文本.

小智 10

这可以使用标准的UIResponder语义来完成.无需深入了解UISearchBar的私有视图层次结构.

[[UIApplication sharedApplication] sendAction:@selector(selectAll:) to:nil from:nil forEvent:nil]
Run Code Online (Sandbox Code Playgroud)

您可以从任何地方调用它,selectAll:选择器将运行响应程序链以查看是否有任何对象响应它.假设您的搜索栏当前是第一个响应者(如果用户正在键入它),它将响应并且结果将是所有文本被选中.如果不是,您可以通过调用becomeFirstResponder搜索栏将其设为第一响应者.

[_mySearchBar becomeFirstResponder]
[[UIApplication sharedApplication] sendAction:@selector(selectAll:) to:nil from:nil forEvent:nil]
Run Code Online (Sandbox Code Playgroud)


Mun*_*ndi 2

这是另一个建议:当有人激活搜索栏时,有两种可能的意图:输入新文本或添加到现有文本。我认为你应该给你的用户选择。

如果他想添加文本,他自然会在现有文本的末尾再次点击。

如果他想重新开始,他可以按下搜索栏激活时自动出现的清除按钮。

  • 不过,此行为与 iOS 上的 Safari 不同,后者在您点击地址栏时选择文本。 (7认同)