ios - 呈现ABPeoplePickerNavigationController后自动进入搜索模式

标签 ios uisearchbar abpeoplepickerview

我正在使用 Apple 提供的 ABPeoplePickerNavigationController 类来让用户选择联系人。

在此列表中,用户可以通过点击搜索栏开始搜索。但是我希望用户不需要点击搜索栏,因此我想在呈现 View Controller 后自动进入搜索模式。

对于searchBar,您通常可以通过调用searchDisplayController setActive:YESanimated:YES进入searchMode。然而,使用 ABPeoplePickerNavigationController 似乎不起作用。

这就是我尝试过的:

ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
[self presentViewController:picker animated:YES completion:^{
    [picker.searchDisplayController.searchBar becomeFirstResponder];
    [picker.searchDisplayController setActive:YES animated:YES];
}];

最佳答案

由于 ABPeoplePickerNavigationController 是一个 navigationController,因此您看到的 searchBar 是该 navigationController 中 topViewControllervisibleViewController 的一部分(实际上是类 ABMembersViewController 未由 AddressBookUI API 公开)。

要激活搜索栏,您可以在完成 block 中执行以下操作:

[picker.visibleViewController.searchDisplayController.searchBar becomeFirstResponder];
[picker.visibleViewController.searchDisplayController setActive:YES animated:YES];

关于ios - 呈现ABPeoplePickerNavigationController后自动进入搜索模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14718661/

相关文章:

ios - 根据在 firebase 数据库中找到的值设置开关

android - 如何让 Action Bar SearchView 填满整个 action bar?

ios - Swift:编辑 ABPersonViewController

ios - ABPeoplePickerNavigationController predicateForEnablingPerson - 街道地址的谓词格式是什么?

swift - 如何将电话号码返回到 swift 应用程序?

javascript - 在 Canvas 上绘制 html5 视频 - 在 iPad 上

ios - 使用 ShouldChangeCharacters 中断 mvvmcross 数据绑定(bind)

ios - Xamarin iOS UIButton 隐藏/显示

ios - 如何从SearchBar获取Tableview中所有项目的当前项目的索引

ios - 在 swift iOS 中从表视​​图中选择时,UIsearchbar 结果出错