【发布时间】:2017-05-28 03:20:01
【问题描述】:
我知道如何在 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];
所以,我确实设置了显示属性,但结果是一样的,即使我只选择 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");
}
【问题讨论】:
-
每个联系人都有一个电话号码数组,通过数组搜索选择一个特定的电话号码
-
好吧,我也可以搜索一组联系人并选择一个特定的联系人,但拥有选择器会更有帮助。在 Android 中,您可以选择一个数字,根据文档,iOS 也是如此,我在文档中读到:“CNContactPicker 对象显示用于选择联系人的基于弹出框的系统界面。此类的方法和属性帮助您选择联系人或联系人的值,例如联系人的电话号码或电子邮件地址。”
标签: ios cncontactpicker