Upv*_*ote 5 iphone cocoa-touch objective-c
我有一个收件人选择器视图.但我想在我选择一个之前只显示有电话号码的联系人.
这是我得到模态视图的方式:
-(void)messageWillShowRecipientPicker{
ABPeoplePickerNavigationController *picker =
[[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
NSArray *displayedItems =
[NSArray arrayWithObject:[NSNumber
numberWithInt:kABPersonPhoneProperty]];
picker.displayedProperties = displayedItems;
// Show the picker
[self presentModalViewController:picker animated:YES];
[picker release];
}
Run Code Online (Sandbox Code Playgroud)
知道怎么做吗?
我测试了这个,应该工作.可能要调整它^ - ^
ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray *allContacts = [(NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook)autorelease];
for (int i =0; i < allContacts.count; i++) {
ABRecordRef person = [allContacts objectAtIndex:i];
if (person != nil) {
ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (ABMultiValueGetCount(phones) == 0) {
CFErrorRef error = nil;
ABAddressBookRemoveRecord(addressBook, person, &error);
NSLog(@"Removing %@",(NSString *)ABRecordCopyCompositeName(person));
}
CFRelease(phones);
}
}
CFErrorRef saveError = nil;
ABAddressBookSave(addressBook, &saveError);
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
picker.addressBook = addressBook;
NSArray *displayedItems =
[NSArray arrayWithObject:[NSNumber
numberWithInt:kABPersonPhoneProperty]];
picker.displayedProperties = displayedItems;
// Show the picker
[self presentModalViewController:picker animated:YES];
CFRelease(addressBook);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2541 次 |
| 最近记录: |