Как скрыть некоторые свойства с помощью ABPeoplePicker
Когда используешь peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
, представление со всей информацией контакта отображается. Я видел приложения, которые отображают только выбранную информацию (например, номера телефонов).
Как я могу это сделать? Я только хочу отобразить имя контакта и номера телефонов.
Большое спасибо!
3 ответа
Это довольно просто. Я настроил ABPeoplePickerNavigationController для отображения только адресов электронной почты.
Код выглядит так:
ABPeoplePickerNavigationController *peoplePicker = [[ABPeoplePickerNavigationController alloc] init];
[peoplePicker setPeoplePickerDelegate:self];
[peoplePicker setDisplayedProperties:[NSArray arrayWithObject:[NSNumber numberWithInt:kABPersonEmailProperty]]];
Вы можете найти список доступных свойств здесь.
В Swift вы просто делаете это.
var people = ABPeoplePickerNavigationController()
people.peoplePickerDelegate = self
// 3 is for Phone Number
people.displayedProperties = [3]
Я не уверен, если вы можете,
Вы можете сделать это, чтобы получить список людей для адресной книги:
// get the default address book.
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
а затем создайте свой собственный вид выбора, отображающий только ту информацию, которую вы хотите.