我正在使用 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 中 topViewController
或 visibleViewController
的一部分(实际上是类 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/