gpt4 book ai didi

ios - UISearchBar 在搜索没有结果时显示标签,但在单击 UISearchBar 中的 x 时不会再次隐藏标签

转载 作者:行者123 更新时间:2023-11-29 03:03:46 26 4
gpt4 key购买 nike

我有一个我似乎无法克服的小情况。

我有一个 UITableView,它的顶部嵌入了一个 UISearchBar。 TableView 由 NSFetchedResultsController 和 CoreData 填充。

应用程序首次启动时,没有数据,如果用户尝试搜索,我启用了在屏幕中间显示“未找到结果”的标签。但是,如果用户单击 UISearchBar 中的 x,它会清除搜索但不会再次隐藏标签。

我没有 UISearchBar 的取消按钮(它只是 x),我实现了在搜索处于事件状态时隐藏导航栏按钮的使用。

考虑到这一点,我已将问题缩小到 textDidChange 方法,但当用户按下 x 时,无论是否按下键盘,我似乎都无法隐藏标签。

我希望有人能对此有所启发!

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
self.eventSearchBar.showsCancelButton = NO;
if ([self.eventSearchBar.text length] > 0)
{
self.addButton.enabled = NO;
}

// This code seems to have no effect at all
if ([searchText length] == 0)
{
self.noResultsLabel.hidden = YES;
}
_fetchedResultsController = nil;
NSError *error;

if (![[self fetchedResultsController] performFetch:&error])
{

}
else
{
[self.eventTableView reloadData];
[self.noResultsLabel setHidden:_fetchedResultsController.fetchedObjects.count > 0];
if (![self.eventSearchBar isFirstResponder])
{
self.shouldBeginEditing = NO;
[self.eventTableView reloadData];
[self.eventSearchBar resignFirstResponder];
}
}
}

更新:两张图片

enter image description here

enter image description here

非常感谢任何指导!

最佳答案

我已经按照我的意愿设法让它工作了。

我发现当键盘仍然打开并且用户按下 x 按钮时,textDidChange 中的以下代码会起作用:

    if (![self.eventSearchBar isFirstResponder])
{
self.shouldBeginEditing = NO;
[self.eventTableView reloadData];
[self.eventSearchBar resignFirstResponder];
}

所以在这里,我把 self.noResultsLabel.hidden = YES;

如果键盘是第一响应者并且用户按下 x,我还想隐藏 noResultsLabel,我执行了以下操作:

    if ([self.eventSearchBar isFirstResponder] && ([self.eventSearchBar.text length] == 0))
{
self.noResultsLabel.hidden = YES;
self.addButton.enabled = YES;

[self.eventTableView reloadData];
}

现在,用户可以按 UISearchBar 中的 x 按钮,如果显示键盘是否是第一个响应者,它将隐藏 noResultsLabel。

谢谢大家的帮助。

关于ios - UISearchBar 在搜索没有结果时显示标签,但在单击 UISearchBar 中的 x 时不会再次隐藏标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23005701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com