【问题标题】:UISearchBar delegate functions are not responsingUISearchBardelegate 函数没有响应
【发布时间】:2014-03-25 20:47:47
【问题描述】:

UISearchBar 委托函数仅对 iOS7 iPhone5 没有响应。我的代码中有两个 .xib 文件,一个用于 3.5 英寸屏幕,一个用于 4 英寸屏幕。 对于 3.5 英寸的屏幕,它工作正常,但对于 4 英寸的屏幕,委托函数没有被调用。 你能指导我吗?

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
    [searchBar setShowsCancelButton:YES animated:YES];
    [self keyboardWillShow];
}

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    [self keyboardWillHide];
    searchBar.text=@"";

    [searchBar setShowsCancelButton:NO animated:YES];
    [searchBar resignFirstResponder];
}

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar 

这个函数被调用,但是searchBarCancelButtonClicked 不起作用。

【问题讨论】:

  • 如果searchBarCancelButtonClicked没有被调用,你看一下代理是否设置好?
  • 是的,代表设置得很好。这就是 searchBarTextDidBeginEditing 响应的原因。
  • 但是searchBarCancelButtonClicked 没有被调用?

标签: ios ios7 xcode5 uisearchbar iphone-5


【解决方案1】:

我有一些建议给你:

1) 首先检查您的 iPhone5 的 .xib 文件是否连接到 UISearchBar 的委托?

2) 您可以为 3.5 英寸和 4 英寸使用一个 .xib 文件,并通过自动调整大小使此 .xib 与 iPhone 4 和 5 兼容。

希望这些点可以解决您的问题。

【讨论】:

  • 是的,它已连接。我不能使用 Autoresizing,因为我需要支持 iOS4。
  • 你做了 searchBar.delegate = self;在 ViewDidLoad ?
  • 是的,我试过了。我也从 Xib 文件中连接了 delgate
  • 那我建议你对一个.xib文件使用设备检查并手动调整searchBar高度。
【解决方案2】:

正如 Irfan 所说,这将是因为您没有正确连接代表。检查 4 英寸屏幕的 xib 文件。您也可以在单个 xib 中完成此操作。只需单击关闭自动布局并适当调整每个元素的大小调整约束以获得更好的结果。

【讨论】:

    【解决方案3】:

    一切都很好。这是我的错。我正在应用覆盖取消按钮的覆盖视图。我删除了那个叠加层,它运行良好。

    【讨论】:

    • @Irfan 谢谢你的努力兄弟。 :) 贾扎克阿拉
    猜你喜欢
    • 2016-12-05
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多