Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.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
Ios 避免CNContactPickerViewController显示电子邮件_Ios_Objective C_Contacts - Fatal编程技术网

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”,但它仍然显示电子邮件