如何在iOS中选择联系人电话号码?

我知道如何在iOS中(使用CNContactPickerViewController)选择联系人,但是如何从整体上选择联系人的特定电话号码,而不是联系人本身?根据文档,这应该是可能的,但是我没有找到具体方法。

编辑:这是我的代码

CNContactPickerViewController *contactPicker = [[CNContactPickerViewController alloc] init];

contactPicker.delegate = self;
contactPicker.displayedPropertyKeys = @[CNContactGivenNameKey, CNContactImageDataAvailableKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey, CNContactThumbnailImageDataKey, CNContactIdentifierKey];

[self presentViewController:contactPicker animated:YES completion:nil];

因此,我确实设置了displayProperties,但是结果是相同的,即使我仅选择CNContactPhoneNumbersKey,也不会显示所有联系人的号码,因此我可以选择一个特定的号码。

我想念什么?

编辑2:根据要求的回调方法。我不知道它们有什么意义,但是。

-(void) contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact{
  //NSLog(@"Contact : %@",contact);
  NSString* contactName = [NSString stringWithFormat:@"%@%@%@", contact.givenName, @" ", contact.familyName];
  [currentButton setTitle:contactName forState:UIControlStateNormal];
  [currentName setText:contactName];
...
}

-(void) contactPickerDidCancel:(CNContactPickerViewController *)picker {
  //NSLog(@"Cancelled");
}

好的,这是答案:

首先,仅使用您要在中选择的属性displayedPropertyKeys(在本例中为CNContactPhoneNumbersKey),并确保实现所有委托方法(即didSelectContact-当联系人只有一个电话号码时,以及didSelectContactProperty-当联系人拥有一个电话号码时)一个以上的电话号码)。

此外,通过设置以下限制联系人选择:

contactPicker.predicateForEnablingContact = [NSPredicate predicateWithFormat:@"phoneNumbers.@count > 0"];
contactPicker.predicateForSelectionOfContact = [NSPredicate predicateWithFormat:@"phoneNumbers.@count == 1"];
contactPicker.predicateForSelectionOfProperty = [NSPredicate predicateWithFormat:@"key == 'phoneNumbers'"];

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何选择联系人的非默认电话号码?

从ListView中选择联系人,并在Android中获取他们的电话号码

从联系人中选择电话号码

我如何获取所选联系人的电话号码

iOS通讯录如何通过电话号码获取联系人

如果号码格式不同,如何匹配用户联系人列表中的电话号码?

Android如何通过我的通话记录联系人电话号码获取联系人ID

使用ContentProvider从联系人获取电话号码-Android

从电话号码获取实际的联系人姓名

从Android联系人簿获取电话号码

Android-从电话号码获取联系人照片

Android从联系人列表中获取电话号码

从联系人列表中获取电话号码

通过联系人姓名获取电话号码

如果iOS8具有多个电话号码,则显示联系人属性

如何通过姓名和电话号码搜索联系人?

如何从联系人到我的SMS应用程序获取电话号码

如何从他的电话号码中获取联系人的姓名

如何获取所需的联系人显示名称基于反应本机中的电话号码

如何获取给定电话号码的联系人姓名

如何构建一个显示我的联系人电话号码的应用

iOS中的联系人选择器以获取电话号码

使用联系人Android Studio的电话号码在联系人列表中打开联系人信息

如何快速从用户的联系人中访问电话号码?

如何允许用户从Android中的联系人中选择一个或多个电话号码和/或电子邮件地址

如何在Swift中选择与ABPeoplePickerNavigationController的联系人?

从联系人iOS提取的电话号码中删除不需要的字符和国家/地区代码

如何从设备上的每个联系人仅获得第一个电话号码?

创建新联系人作为交换时如何添加电子邮件地址和电话号码