viewControllerForNewContact показывает все ключи
Я хотел бы показать только ограниченное количество ключей при создании нового CNContact (используя метод viewControllerForNewContact). Однако, несмотря на различные значения для ключей для извлечения, которые я пробовал, я все еще продолжаю получать весь набор настраиваемых значений. Как мы можем ограничить ключи, которые отображаются для новых контактов?
Кажется, это работает нормально для существующих контактов, но как-то не для новых контактов...
Ниже мой код пока...
CNMutableContact *newContact = [[CNMutableContact alloc] init];
// NSArray *keysToFetch = @[CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey, CNContactEmailAddressesKey, CNContactImageDataKey, [CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName], [CNContactViewController descriptorForRequiredKeys]];
// NSArray *keysToFetch = @[[CNContactViewController descriptorForRequiredKeys]];
// NSArray *keysToFetch = @[CNContactGivenNameKey, [CNContactViewController descriptorForRequiredKeys]];
// NSArray *keysToFetch = @[CNContactIdentifierKey, CNContactEmailAddressesKey, CNContactBirthdayKey, CNContactImageDataKey, CNContactPhoneNumbersKey, [CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName],[CNContactViewController descriptorForRequiredKeys]];
// NSArray *keysToFetch = @[[CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName], CNContactEmailAddressesKey];
NSArray *keysToFetch = @[CNContactGivenNameKey, CNContactPhoneNumbersKey];
CNContactViewController *newContactViewController = [CNContactViewController viewControllerForNewContact:newContact];
newContactViewController.delegate = self;
newContactViewController.allowsActions = YES;
newContactViewController.allowsEditing = YES;
newContactViewController.displayedPropertyKeys = keysToFetch;
UINavigationController *newContactNavViewController = [[UINavigationController alloc] initWithRootViewController:newContactViewController];
newContactNavViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:newContactNavViewController animated:YES completion:nil];
1 ответ
В заголовочном файле CNContactViewController.h есть примечание: "Все свойства видны при редактировании контакта". Так что я думаю, это ничего не меняет, чтобы установить displayPropertyKeys для нового контакта, так как он будет отображаться в режиме редактирования.