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 для нового контакта, так как он будет отображаться в режиме редактирования.

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