Как скрыть некоторые свойства с помощью 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);

а затем создайте свой собственный вид выбора, отображающий только ту информацию, которую вы хотите.

Другие вопросы по тегам