我对Swift的编码非常陌生,并且试图自学。我无法确定如何从Swift 3中的ContactPicker视图UI启用多项选择。从Swift 3的ContactUI中选择多个选项
从阅读文档看来,启用多个选择我应该使用[CNContactProperty]
,但这是不明确的。当我这样做时,我无法调用属性来打印givenName和值,因为它们不是数组的成员。另外,当我使用[CNContactProperty]
的语法时,我的选取器视图没有显示“完成”按钮来结束选择。取消是我唯一的选择退出选择器视图。
我发现许多以前版本的Swift的答案,但对如何在Swift 3中使用此功能感兴趣。最终,我试图预先填充UIMessageComposer
中的联系人字段,以便将消息从只需按一下发送按钮即可完成数组。
// this is the code that works for a single selection
import UIKit
import ContactsUI
import Contacts
class MainViewController: UIViewController, CNContactPickerDelegate {
// select Contacts to message from "Set Up" Page
@IBAction func pickContacts(_ sender: Any) {
let contactPicker = CNContactPickerViewController()
contactPicker.delegate = self
contactPicker.displayedPropertyKeys = [CNContactPhoneNumbersKey]
self.present(contactPicker, animated: true, completion: nil)
}
//allow contact selection and dismiss pickerView
func contactPicker(_ picker: CNContactPickerViewController, didSelect contactsProperty: CNContactProperty) {
let contact = contactsProperty.contact
let phoneNumber = contactsProperty.value as! CNPhoneNumber
print(contact.givenName)
print(phoneNumber.stringValue)
}
谢谢你,先生你是一个救生员。 “print(phoneNumber)”命令仍然给我一个很长的字符串,但是我做了一个小小的改动。仍然不能够感谢你。 //我将电话号码作为短字符串进行的更改//// let phoneNumber =(contact.phoneNumbers [0] .value).value(forKey:“digits”)! – FatyP33
高兴地帮助:)如果上面的答案有帮助,请不要忘记加注并标记为“正确”。 – Fahim