我如何处理在 ABPeoplePickerNavigationController 中选择 属性?

How do I handle selecting a property in ABPeoplePickerNavigationController?

我遇到了一些麻烦..我看到我们应该使用 属性:

predicateForSelectionOfProperty

用于确定哪些属性获得 'selected',实际上我有点沮丧,因为没有

predicateForEnablingProperty

因为对于我的用例,我只需要 phone 个数字。

就是说,我对 predicateForSelectionOfProperty 使用的任何东西似乎都无法满足我的要求。我想要的是,当我 select 一个联系人的 phone 号码时,它应该调用委托回调..但是,现在,它正在调用他们!

也许我只是完全遗漏了一些东西,因为我实际上宁愿只拥有我的联系人列表,其中包含 phone 个号码,并且只显示 phone 个号码..也许我'我什至没有朝着正确的方向前进。

感谢您提供的任何帮助!

  1. 如果你不想让它拨打号码,你应该:

    • 指定peoplePickerDelegate;和

    • 实施peoplePickerNavigationController:didSelectPerson:property:identifier:

    • 不要指定 predicateForSelectionOfProperty(或者如果指定,请确保它 returns true,例如 NSPredicate(value: true)

  2. 显然,如果您甚至不希望它向您显示有关联系人的无关信息,请指定 displayedProperties 数组,例如

    controller.displayedProperties = [NSNumber(int: kABPersonPhoneProperty)]
    
  3. 或者,如果您想进一步自定义此 UI,您可以使用 AddressBook.framework 从地址簿中提取 phone 号码并显示随心所欲UI。