我有一个 OSX 应用程序,它使用 CNContactPicker 导入用户选择的单个联系人的详细信息。如果用户进入联系人选择器并使用搜索栏返回单个联系人(即列表中只有一个结果) - 无法选择此联系人。如果用户搜索返回多个联系人(即他们可以从多个联系人列表中选择一个联系人),则它工作正常。
例如:我创建了一个名为“Testing”的联系人。在此屏幕截图中,您将看到我搜索了测试,搜索列表中有 1 个结果。我无法选择此联系人。
对我来说,这看起来像是一个 Apple 错误,但我想知道在 Mac 应用程序中使用 CNContactPicker 的其他人是否有同样的问题?
这是代码:
@IBAction func importContacts(_ sender: NSButton) {
popover = CNContactPicker()
(popover! as! CNContactPicker).delegate = self
(popover! as! CNContactPicker).showRelative(to: self.view.bounds, of: self.view, preferredEdge:NSRectEdge.maxX)
}
func contactPicker(_ picker: CNContactPicker, didSelect contact: CNContact) {
importedContact = contact
}
func contactPickerDidClose(_ picker: CNContactPicker) {
if (importedContact != nil) {
self.populateDetailsFromContact(importedContact! as! CNContact)
}
}
在这种情况下,“didSelect”委托函数不会触发,因此我的“importedContact”变量为零。我在一个小项目中重现了这个场景。