问题标签 [uisearchbardelegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2499 浏览

ios7 - 在 iOS 7 上双击带有搜索委托的 UISearchBar 会导致 UISearchBar 消失

我们在表格标题中有一个搜索栏。当用户在 iOS 7 上快速点击它两次时,它就会消失。有人对我们做错了什么有任何建议吗?

0 投票
1 回答
5048 浏览

ios - 未调用 UISearchDisplayController 委托方法

我正在尝试将一个添加UISearchBar到我在“nib”文件中定义的表格视图中。我在 IB 中添加了一个搜索栏和搜索显示控制器,链接了搜索栏插座,并将其添加到视图控制器的“.h”文件中:

此外,我还实现了以下委托方法:

我发现shouldReloadTableForSearchString:调用了该方法,但是shouldReloadTableForSearchScope:从未调用过方法,因此我的表格视图数据没有重新加载搜索结果......我会丢失什么?

提前致谢

0 投票
6 回答
4649 浏览

ios - iOS7 UISearchBar 取消按钮文本未显示。按钮显示不可见

我希望这是一个简单的问题。

在此处输入图像描述

我有一个显示取消按钮的搜索栏:

唯一的问题是取消按钮上的文本没有显示。

在此处输入图像描述

按钮显然在那里,因为我可以单击它,但显示按钮时没有文本出现。好像按钮是不可见的。该代码在 iOS6 中运行良好,但现在在 iOS7 中我遇到了这个问题。任何机构有任何想法?我正在使用 UISplitViewController,我的搜索栏位于 MasterViewController 的 navigationItem.titleView 中。

0 投票
1 回答
1363 浏览

iphone - UISearchBar 委托方法在 iOS7 中只调用一次

在 iOS 7 中,搜索栏委托方法searchBarTextDidBeginEditing没有被第二次调用。当我第一次在搜索栏上点击时,它正在调用searchBarTextDidBeginEditing此方法,但是当我第二次点击时,它没有调用其委托方法,而它在 iOS 6 中运行良好。问题仅在 iOS 7 上

请提供任何帮助

0 投票
1 回答
2890 浏览

ios - searchBarSearchButtonClicked 没有被调用,尽管 Delegate 被设置

好的,我正在为此拉头发。我几乎可以肯定我曾经也有过这个工作,但现在它不工作了。

UISearchBar在表格视图单元格中嵌入了一个。我将搜索栏声明为属性,我的视图控制器设置为UISearchBarDelegate. 搜索栏已初始化、配置好,一切看起来都很棒。它响应其他委托方法来限制输入的字符,处理取消按钮,除了searchBarSearchButtonClicked. 我到底做错了什么?

这是我的设置的基础知识:

我已经排除了我所有的 tableview 设置以及所有这些,这一切似乎都工作正常。这就是杀死我的原因。一切正常,所有其他委托方法......除了搜索按钮返回。请告诉我我正在做一些愚蠢的事情。我别无选择。

更新 我已经找出了搜索按钮无法执行的罪魁祸首。我删除了所有其他搜索栏委托方法,它开始工作......所以我将它们全部注释掉,直到我发现哪个导致问题。

这个人是我的罪魁祸首:

那么现在,搜索按钮实际上是否算作按键,我需要将其添加到允许的字符中吗?还是我需要为它添加一张支票以便允许它返回?任何帮助都会很棒。

更新 2 我已经解决了我的问题。它结合了线索和启示,但我终于让它起作用了。罪魁祸首是不允许字符集中的返回键。我将 \n 添加到字符集,瞧,搜索按钮无法正常工作。这是我更新的过滤器逻辑,用于显示添加的返回键,以及适合我的情况的有效字符集。一旦我被允许,我会自己回答这个问题。

0 投票
3 回答
3722 浏览

ios - 当键盘按下并点击 x 时,在 UISearchBar 上执行操作

我有一个UITableView顶部UISearchBar,并且有一个不起作用的特定要求。

我没有取消按钮,UISearchBar (showsCancelButton = NO)所以我完全依靠 x 中的 xUISearchBar来取消现有的搜索。我依靠键盘的“搜索”按钮来关闭键盘(尽管在我的情况下它被称为完成)。

当用户在我的应用程序中搜索时,我正在禁用某个navigation bar button项目,因为它会提供糟糕的用户体验,并且只有当搜索取消时,用户才会恢复导航栏按钮项目。这一切都在工作。

我有一个特殊的情况,但我无法解决。

1) 点击搜索栏输入文本

2)点击键盘上的完成,键盘将消失

3) 键盘退出后,x 仍保留在UISearchBar

4) 点击 x 中的 x 中UISearchBar的文本SearchBar消失并刷新视图

5)此时,导航栏按钮应该再次启用,但事实并非如此。

代码:

我知道上面的代码是为了在按下 x 时关闭键盘,这很好。

在我的情况下,键盘已经退出,所以我希望点击 x 来重新启用导航栏项目。

因为上面的 if 语句根本没有做任何事情,并且导航栏项目仍然被禁用。

我什至在那个 if 语句中尝试过:

但是说 searchBar 不响应那个 enableAdd 选择器会崩溃。

我已经做了一个断点,当我点击 x 并进入语句时,上面的 if 语句确实评估为 true,它“运行”代码以启用按钮,但它从未发生过。

我的最终编辑方法是:

更新:我已经尝试过这里的链接http://engineeringtheworld.wordpress.com/2011/04/11/detecting-when-clear-is-clicked-in-uisearchbar-x-button/没有成功 - textField 的 shouldClear方法不会被调用。我正在使用 iOS 7,所以也许还有另一种方法可以使用 textFields 嵌入视图?这很可能是正确的方法,但它不适用于我的代码,因为该示例中的 for 语句永远不会被评估为 true(我放入了 NSLog)。

更新 2:从上面的 if 语句中,我调用了 searchBarCancelButton 方法,并且导致了极端循环,所以这当然不是正确的方法:

对此的任何指导将不胜感激。我知道我错过了一个关键步骤,但我就是想不通。

0 投票
0 回答
107 浏览

uisearchbar - 当搜索栏不是第一响应者时,UISearchbar 取消按钮未启用

我的 UISearchbar 有一个可见的取消按钮。

当我做

取消按钮停止工作(启用 = 否)

我正在使用这个 hack 来强制启用取消按钮(类别 on UISearchbar):

但这似乎不是合法的方法。有没有更好的方法?

0 投票
1 回答
2712 浏览

ios - filterContentForSearchText:scope: 方法从何而来?

最近,我注意到filterContentForSearchText:scope:出现在多个关于如何实现搜索栏的教程中。

但是,我查找了两者的参考资料UISearchDisplayDelegate and UISearchBarDelegate。我发现这filterContentForSearchText:scope:既不是必需的也不是可选的方法。

我想知道是否filterContentForSearchText:scope:只是过滤搜索结果的常规方法名称?

0 投票
0 回答
598 浏览

ios7 - 明文 UISearchBar

我有一个 UISearchBar 有一些奇怪的行为(iOS 7)。这些是我采取的步骤:

1)我进行搜索并从表中选择一个结果。

2)我用这个代码(任何一行)清除搜索文本

3)我做第二次搜索。但除非我首先点击搜索字段内的“清除按钮”,否则不会显示任何结果。点击“x”后,行为恢复正常。

用户选择其中一个搜索结果后,您应该如何清除搜索字符串?

0 投票
1 回答
821 浏览

ios - `UISearchDisplayController` SearchTableview didSelectRowAtIndexPath 不起作用?

UISearchDisplayController我在我的 iphone 应用程序屏幕之一中使用。我需要UISearchDisplayController在 uisearchbar 中仅查看用户类型,它将加载 searchtableview 并显示数据。现在我的问题是一切都在进行,但是当我尝试选择行时搜索 tabelview 我的-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath代表没有触发,因此 searchtableview 在它之后永远不会隐藏,直到我点击 search-bar 的取消按钮。当我尝试点击 searchtabelview 的行时,我的搜索栏隐藏了,只有 serachtableview 没有隐藏,没有任何事情发生-选择删除方法。

我已经做了以下事情。所以谁能告诉我我的错误是什么。

注意:我在屏幕中没有任何其他表格视图。只是搜索显示控制器的 uisearchtableview(这会导致问题吗?)