【问题标题】:SearchBar not working when search button is clicked单击搜索按钮时搜索栏不起作用
【发布时间】:2026-02-04 18:45:01
【问题描述】:

谁能帮帮我,我正在使用 UISearchBar 并希望当我在 SearchBar 中写任何内容并按 Enter 键时,它将开始所需的操作...

我已阅读 searchBarSearchButtonClicked 函数将在弹出的键盘窗口中单击“搜索”按钮后被调用。但它不被称为:( 我已实现为:

  • (void) searchBarSearchButtonClicked:(UISearchBar*) searchContact { //做点什么 }

我已经通过放置断点来检查这个函数实际上没有被调用......

有什么想法吗??

谢谢!!

【问题讨论】:

  • 检查IB UISearchBar的出口是否连接。告诉我 UISearchBar 的 superview 吗?并检查委托方法。
  • 确保您已正确连接搜索栏插座以及搜索栏代理。

标签: iphone


【解决方案1】:

您是否将委托分配给实现“searchBarSearchButtonClicked”的视图控制器?

你需要像这样分配委托。

searchBar.delegate =self;

【讨论】:

  • thanx Deep 那是我所缺少的:)
  • 很高兴解决了您的问题。请标记为答案,以便其他人也应该使用它。谢谢
  • +1 @iphone 开发者,如果它有效,那么你需要接受它。您可以在 15 分钟后接受答复。
  • 您可以在上下箭头下方看到勾选标记。你只需要勾选它就可以了。
【解决方案2】:

您需要实现UISearchBarDelegate 协议并将文本字段的委托设置为实现该协议的类。

这就是没有调用委托的原因。

你可以试试这个,

在 IB 中将委托设置为文件的所有者并实现委托。

在代码中,如果你持有对搜索栏的引用,那么在 viewDidLoad 上

searchBar.delegate = self;

【讨论】: