Fré*_*dda 5 contactpicker ios9 cncontact
我使用新的 CNContactPickerViewController 从地址簿中选择联系人并在我的应用程序中使用它们。
当我按下按钮时,我调用此代码:
let contactPicker = CNContactPickerViewController()
contactPicker.delegate = self
contactPicker.predicateForEnablingContact = NSPredicate(format: "emailAddresses.@count > 0")
presentViewController(contactPicker, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
我使用以下 CNContactPickerDelegate 方法来选择多个联系人:
func contactPicker(picker: CNContactPickerViewController, didSelectContacts contacts: [CNContact]) {
selectedRecipients = contacts.map { $0.emailAddresses.first!.value as! String }
tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
这有助于我填充一个名为“selectedRecipients”的数组(基本上是一组 emailAddresses 字符串)
这工作正常。但是,如果我之前选择了联系人,我希望contactPicker在初始化时预先选择联系人,即在出现时将联系人显示为已选择。有没有办法做到这一点?
谢谢
我认为您正在要求联系人框架管理一些它无法处理的额外状态。CNContact您的“选定”状态标志在对象上不可用(请参阅CNKeyDescriptor下面的列表),因此不可在选择器视图控制器中显示。
在我看来,如果您想将这种额外的状态添加到您的应用程序中,您将需要推出自己的解决方案。
CNKeyDescriptor据我所知, s列表:
// Properties that are always fetched. Can be used with key value coding and observing.
@available(iOS 9.0, *)
public let CNContactIdentifierKey: String
// Optional properties that can be fetched. Can be used with key value coding and observing.
@available(iOS 9.0, *)
public let CNContactNamePrefixKey: String
@available(iOS 9.0, *)
public let CNContactGivenNameKey: String
@available(iOS 9.0, *)
public let CNContactMiddleNameKey: String
@available(iOS 9.0, *)
public let CNContactFamilyNameKey: String
@available(iOS 9.0, *)
public let CNContactPreviousFamilyNameKey: String
@available(iOS 9.0, *)
public let CNContactNameSuffixKey: String
@available(iOS 9.0, *)
public let CNContactNicknameKey: String
@available(iOS 9.0, *)
public let CNContactPhoneticGivenNameKey: String
@available(iOS 9.0, *)
public let CNContactPhoneticMiddleNameKey: String
@available(iOS 9.0, *)
public let CNContactPhoneticFamilyNameKey: String
@available(iOS 9.0, *)
public let CNContactOrganizationNameKey: String
@available(iOS 9.0, *)
public let CNContactDepartmentNameKey: String
@available(iOS 9.0, *)
public let CNContactJobTitleKey: String
@available(iOS 9.0, *)
public let CNContactBirthdayKey: String
@available(iOS 9.0, *)
public let CNContactNonGregorianBirthdayKey: String
@available(iOS 9.0, *)
public let CNContactNoteKey: String
@available(iOS 9.0, *)
public let CNContactImageDataKey: String
@available(iOS 9.0, *)
public let CNContactThumbnailImageDataKey: String
@available(iOS 9.0, *)
public let CNContactImageDataAvailableKey: String
@available(iOS 9.0, *)
public let CNContactTypeKey: String
@available(iOS 9.0, *)
public let CNContactPhoneNumbersKey: String
@available(iOS 9.0, *)
public let CNContactEmailAddressesKey: String
@available(iOS 9.0, *)
public let CNContactPostalAddressesKey: String
@available(iOS 9.0, *)
public let CNContactDatesKey: String
@available(iOS 9.0, *)
public let CNContactUrlAddressesKey: String
@available(iOS 9.0, *)
public let CNContactRelationsKey: String
@available(iOS 9.0, *)
public let CNContactSocialProfilesKey: String
@available(iOS 9.0, *)
public let CNContactInstantMessageAddressesKey: String
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2782 次 |
| 最近记录: |