Ios 避免CNContactPickerViewController显示电子邮件
我使用以下代码在我的应用程序中显示联系人列表:Ios 避免CNContactPickerViewController显示电子邮件,ios,objective-c,contacts,Ios,Objective C,Contacts,我使用以下代码在我的应用程序中显示联系人列表: self.contactPicker = [[CNContactPickerViewController alloc] init]; self.contactPicker.delegate = self; self.contactPicker.predicateForSelectionOfContact = [NSPredicate predicateWithFormat:@"TRUEPREDICATE"];
self.contactPicker = [[CNContactPickerViewController alloc] init];
self.contactPicker.delegate = self;
self.contactPicker.predicateForSelectionOfContact =
[NSPredicate predicateWithFormat:@"TRUEPREDICATE"];
[viewController presentViewController:self.contactPicker
animated:YES
completion:nil
];
该页面显示所有联系人,包括电子邮件。我只想显示数字(不想显示电子邮件)NSPredicate
或CNContactPickerViewController
本身是否有任何选项只显示数字
我还使用了:
self.contactPicker.displayedPropertyKeys = @[@"phoneNumber"];
但它也不起作用。
displayedPropertyKeys
使用此属性来控制所有字段应显示的内容
Swift 5.2示例
让contactViewController=CNContactPickerViewController()
contactViewController.displayedPropertyKeys=[CNContactPhoneNumbersKey]
// ... 添加代表、演示代表等。
键的完整列表可在中找到。
displayedPropertyKeys
使用此属性控制所有字段应可见的内容
Swift 5.2示例
让contactViewController=CNContactPickerViewController()
contactViewController.displayedPropertyKeys=[CNContactPhoneNumbersKey]
// ... 添加代表、演示代表等。
键的完整列表位于。如果您只想在选择联系人时显示联系人的电话号码,请使用
displayedPropertyKeys
属性:
self.contactPicker.displayedPropertyKeys = @[CNContactPhoneNumbersKey];
但是,如果您甚至不想选择那些没有电话号码的联系人,您可能需要设置predicateForEnablingContact
:
self.contactPicker.predicateForEnablingContact = [NSPredicate predicateWithFormat:@"%K.@count > 0", CNContactPhoneNumbersKey];
我注意到您正在使用self.contactPicker.predicateForSelectionOfContact。但是如果这个人有多个电话号码呢?你打算用哪一种?就我个人而言,我倾向于根本不设置该属性,或者如果您愿意,可能允许用户钻取并选择所需的电话号码(如果有多个电话号码):
self.contactPicker.predicateForSelectionOfContact = [NSPredicate predicateWithFormat:@"%K.@count == 1", CNContactPhoneNumbersKey];
如果您只想在选择联系人时显示联系人的电话号码,请使用
displayedPropertyKeys
属性:
self.contactPicker.displayedPropertyKeys = @[CNContactPhoneNumbersKey];
但是,如果您甚至不想选择那些没有电话号码的联系人,您可能需要设置predicateForEnablingContact
:
self.contactPicker.predicateForEnablingContact = [NSPredicate predicateWithFormat:@"%K.@count > 0", CNContactPhoneNumbersKey];
我注意到您正在使用self.contactPicker.predicateForSelectionOfContact。但是如果这个人有多个电话号码呢?你打算用哪一种?就我个人而言,我倾向于根本不设置该属性,或者如果您愿意,可能允许用户钻取并选择所需的电话号码(如果有多个电话号码):
self.contactPicker.predicateForSelectionOfContact = [NSPredicate predicateWithFormat:@"%K.@count == 1", CNContactPhoneNumbersKey];
它应该是self.contactPicker.displayedPropertyKeys=@[@“PhoneNumber”]代码>。它应该遵守
CNContact
中声明的键,我用“phoneNumbers”替换了“phoneNumbers”,但仍然显示电子邮件。它应该是self.contactPicker.displayedPropertyKeys=@[@“phoneNumbers”]代码>。它应该遵守CNContact
中声明的键。我用“phonenumber”替换了“phonenumber”,但它仍然显示电子邮件