Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何在mac OS上使用CNContactViewController编辑联系人_Swift_Xcode_Macos_Cncontactviewcontroller - Fatal编程技术网

Swift 如何在mac OS上使用CNContactViewController编辑联系人

Swift 如何在mac OS上使用CNContactViewController编辑联系人,swift,xcode,macos,cncontactviewcontroller,Swift,Xcode,Macos,Cncontactviewcontroller,我想创建一个允许用户编辑联系人的应用程序 根据CNContactViewController的说明,它具有iOS和macOS 10.11+的属性 在Xcode中,CNContactViewController只有一个属性,没有特定于联系人的方法: @NSCopying open var contact: CNContact? 是否可以使用ContactsUI框架在mac上编辑联系人,或者这是文档中的错误 这是我显示联系人的方式: if let vc = segue.destinationCon

我想创建一个允许用户编辑联系人的应用程序

根据
CNContactViewController
的说明,它具有iOS和
macOS 10.11+
的属性

在Xcode中,
CNContactViewController
只有一个属性,没有特定于联系人的方法:

@NSCopying open var contact: CNContact?
是否可以使用
ContactsUI
框架在mac上编辑联系人,或者这是文档中的错误

这是我显示联系人的方式:

if let vc = segue.destinationController as? CNContactViewController{

    let contact = CNMutableContact()
    contact.givenName = "John"
    contact.familyName = "Appleseed"

    let homeEmail = CNLabeledValue(label:CNLabelHome, value:"john@example.com" as NSString)
    let workEmail = CNLabeledValue(label:CNLabelWork, value:"j.appleseed@icloud.com" as NSString)
    contact.emailAddresses = [homeEmail, workEmail]

    contact.phoneNumbers = [CNLabeledValue(
        label:CNLabelPhoneNumberiPhone,
        value:CNPhoneNumber(stringValue:"(408) 555-0126"))]

    let homeAddress = CNMutablePostalAddress()
    homeAddress.street = "1 Infinite Loop"
    homeAddress.city = "Cupertino"
    homeAddress.state = "CA"
    homeAddress.postalCode = "95014"
    contact.postalAddresses = [CNLabeledValue(label:CNLabelHome, value:homeAddress)]

    var birthday = DateComponents()
    birthday.day = 1
    birthday.month = 4
    birthday.year = 1988  // You can omit the year value for a yearless birthday
    contact.birthday = birthday
    vc.contact = contact
}
但是,没有可用的编辑按钮:


我用我的一个开发者积分询问了苹果在Sierra下的情况,回答是“编辑”功能在macOS下还没有实现。有人建议我提交一个雷达(我确实提交了)。我希望它能针对High Sierra进行更新,但遗憾的是,还没有这样的API

如果单击实际的“allowsEditing”链接,您将看到,对于此API,它仅在iOS下(目前)。遗憾的是,我真的很期待删除联系人代码的通讯录代码,但我还不能