2

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

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

对于 searchBar,您通常可以通过调用来输入 searchMode searchDisplayController setActive:YES animated:YES。但是,这似乎不适用于使用ABPeoplePickerNavigationController.

这就是我尝试过的:

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

1 回答 1

2

由于ABPeoplePickerNavigationController是一个导航控制器,所以您看到的 searchBar 是该导航控制器的一部分topViewControllervisibleViewController在该导航控制器中(它实际上ABMembersViewController是 AddressBookUI API 未公开的类)。

要激活 searchBar,您可以在完成块中执行以下操作:

[picker.visibleViewController.searchDisplayController.searchBar becomeFirstResponder];
[picker.visibleViewController.searchDisplayController setActive:YES animated:YES];
于 2013-02-28T15:10:16.093 回答