请选择 进入手机版 | 继续访问电脑版

[IOS] iOS实现从通讯录中选择接洽 人

[复制链接]
查看119 | 回复24 | 2021-9-13 16:37:18 | 显示全部楼层 |阅读模式

偶然 间 APP必要 用户输入一位接洽 人的姓名和电话,除了用户手动输入,一样平常 也答应 用户从通讯录中选择一位接洽 人(图1),下面的代码就是利用 体系 的实现这一需求。

iOS实现从通讯录中选择接洽
人

图1

完备 代码:

  1. #import "ViewController.h"
  2. #import <AddressBookUI/AddressBookUI.h>
  3. @interface ViewController ()<ABPeoplePickerNavigationControllerDelegate>
  4. @property (weak, nonatomic) IBOutlet UITextField *nameTextField;
  5. @property (weak, nonatomic) IBOutlet UITextField *phoneTextField;
  6. @end
  7. @implementation ViewController
  8. - (void)viewDidLoad {
  9. [super viewDidLoad];
  10. }
  11. //用户点击选择按钮
  12. - (IBAction)clickSelect:(UIButton *)sender {
  13. ABPeoplePickerNavigationController *picker =[[ABPeoplePickerNavigationController alloc] init];
  14. picker.peoplePickerDelegate = self;
  15. [self presentViewController:picker animated:YES completion:nil];
  16. }
  17. //这个方法在用户取消选择时调用
  18. - (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker
  19. {
  20. [self dismissViewControllerAnimated:YES completion:^{}];
  21. }
  22. //这个方法在用户选择一个联系人后调用
  23. -(void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person{
  24. [self displayPerson:person];
  25. [self dismissViewControllerAnimated:YES completion:^{}];
  26. }
  27. //获得选中person的信息
  28. - (void)displayPerson:(ABRecordRef)person
  29. {
  30. NSString *firstName = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty);
  31. NSString *middleName = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonMiddleNameProperty);
  32. NSString *lastname = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonLastNameProperty);
  33. NSMutableString *nameStr = [NSMutableString string];
  34. if (lastname!=nil) {
  35. [nameStr appendString:lastname];
  36. }
  37. if (middleName!=nil) {
  38. [nameStr appendString:middleName];
  39. }
  40. if (firstName!=nil) {
  41. [nameStr appendString:firstName];
  42. }
  43. NSString* phone = nil;
  44. ABMultiValueRef phoneNumbers = ABRecordCopyValue(person,kABPersonPhoneProperty);
  45. if (ABMultiValueGetCount(phoneNumbers) > 0) {
  46. phone = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
  47. } else {
  48. phone = @"[None]";
  49. }
  50. //可以把-、+86、空格这些过滤掉
  51. NSString *phoneStr = [phone stringByReplacingOccurrencesOfString:@"-" withString:@""];
  52. phoneStr = [phoneStr stringByReplacingOccurrencesOfString:@"+86" withString:@""];
  53. phoneStr = [phoneStr stringByReplacingOccurrencesOfString:@" " withString:@""];
  54. [self.nameTextField setText:nameStr];
  55. [self.phoneTextField setText:phoneStr];
  56. }
  57. @end
复制代码

源代码下载:点击打开链接

以上就是本文的全部内容,渴望 对大家的学习有所帮助,也渴望 大家多多支持脚本之家。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 雪域蓝眸蓝nz | 2021-9-17 16:49:34 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,影视频道的网站所有电影和连续剧都可以免费看的。访问地址:http://tv.mxswl.com
回复

使用道具 举报

avatar 街充骨万怎 | 2021-9-17 21:44:17 | 显示全部楼层
十分赞同admin楼主!
回复

使用道具 举报

avatar chuzhaofeng | 2021-9-23 23:23:45 | 显示全部楼层
看帖不回帖的人就是耍流氓,我回复了!
回复

使用道具 举报

avatar 恋恋青城黄 | 2021-10-2 14:59:44 | 显示全部楼层
楼上的心情不错啊!
回复

使用道具 举报

avatar 晚景入寒窗 | 2021-10-4 09:57:52 | 显示全部楼层
白富美?高富帅?
回复

使用道具 举报

avatar T七醫生 | 2021-10-4 17:18:33 | 显示全部楼层
在哪里跌倒,就在那里多爬一会儿!
回复

使用道具 举报

avatar 李悔之2015 | 2021-10-10 21:03:05 | 显示全部楼层
最近精神病院在打折,admin楼主去看看吧?
回复

使用道具 举报

avatar 我爱霍启刚掖 | 2021-10-10 21:28:30 | 显示全部楼层
精华帖的节奏啊!
回复

使用道具 举报

avatar A01祥天科技 | 2021-10-10 22:14:36 | 显示全部楼层
信admin楼主,考试不挂科!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则