iOS从通讯录中选择联系人
来源:互联网 发布:鼎域名邸房价走势 编辑:程序博客网 时间:2024/05/18 01:47
有时候APP需要用户输入一位联系人的姓名和电话,除了用户手动输入,一般也允许用户从通讯录中选择一位联系人(图1),下面的代码就是使用系统的<AddressBookUI/AddressBookUI.h>库实现这一需求。
图1
完整代码:
#import "ViewController.h"#import <AddressBookUI/AddressBookUI.h>@interface ViewController ()<ABPeoplePickerNavigationControllerDelegate>@property (weak, nonatomic) IBOutlet UITextField *nameTextField;@property (weak, nonatomic) IBOutlet UITextField *phoneTextField;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad];}//用户点击选择按钮- (IBAction)clickSelect:(UIButton *)sender { ABPeoplePickerNavigationController *picker =[[ABPeoplePickerNavigationController alloc] init]; picker.peoplePickerDelegate = self; [self presentViewController:picker animated:YES completion:nil];}//这个方法在用户取消选择时调用- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker{ [self dismissViewControllerAnimated:YES completion:^{}];}//这个方法在用户选择一个联系人后调用-(void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person{ [self displayPerson:person]; [self dismissViewControllerAnimated:YES completion:^{}];}//获得选中person的信息- (void)displayPerson:(ABRecordRef)person{ NSString *firstName = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty); NSString *middleName = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonMiddleNameProperty); NSString *lastname = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonLastNameProperty); NSMutableString *nameStr = [NSMutableString string]; if (lastname!=nil) { [nameStr appendString:lastname]; } if (middleName!=nil) { [nameStr appendString:middleName]; } if (firstName!=nil) { [nameStr appendString:firstName]; } NSString* phone = nil; ABMultiValueRef phoneNumbers = ABRecordCopyValue(person,kABPersonPhoneProperty); if (ABMultiValueGetCount(phoneNumbers) > 0) { phone = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0); } else { phone = @"[None]"; } //可以把-、+86、空格这些过滤掉 NSString *phoneStr = [phone stringByReplacingOccurrencesOfString:@"-" withString:@""]; phoneStr = [phoneStr stringByReplacingOccurrencesOfString:@"+86" withString:@""]; phoneStr = [phoneStr stringByReplacingOccurrencesOfString:@" " withString:@""]; [self.nameTextField setText:nameStr]; [self.phoneTextField setText:phoneStr];}@end
源代码下载:点击打开链接
0 0
- iOS从通讯录中选择联系人
- android从通讯录中选择联系人并读取号码
- 从通讯录中获取联系人的详细信息
- ios 选择联系人 发短信 通讯录开发 addressUI
- ios 操作通讯录联系人
- iOS 之通讯录联系人
- 从通讯录中导入联系人并去重
- 从通讯录中导入联系人并去重
- 从通讯录中选择短信收件人
- ios获得通讯录中联系人的所有属性
- IOS 获得通讯录中联系人的所有属性
- ios获得通讯录中联系人的所有属性
- iOS 获取通讯录中联系人的所有属性
- ios获得通讯录中联系人的所有属性
- ios获得通讯录中联系人的所有属性
- iOS 获取通讯录中联系人的所有属性
- iOS中获取本地通讯录联系人以及汉字首字母排序
- 小胖说事39-----iOS 获取通讯录中联系人的所有属性
- AT&T(GAS)汇编指令小集
- css学习笔记20160124框模型
- 【五校联考1day2】送你一颗圣诞树
- 快速排序算法
- 21.2 关于动态链接库的其他话题
- iOS从通讯录中选择联系人
- Leetcode243: Find Median from Data Stream
- 2014年第五届蓝桥杯C/C++程序设计本科B组省赛 蚂蚁感冒(编程大题)
- Java堆、栈和常量池以及相关String的详细讲解(经典中的经典)
- Cocos2d-x 屏幕适配
- 对文件进行操作
- 天才第一步,点亮人生中的第一个发光二极管
- C++学习笔记46——友元与继承
- POJ 3267 The Cow Lexicon DP 字符串匹配 一主串n个子串最少在主串删除多少字母,可以匹配到n 个单词序列中的一些完整单词