zoukankan      html  css  js  c++  java
  • 打开通讯录及回调

    - (IBAction)openPhoneBook:(UIButton *)sender {//打开电话本
        
        _tableView.hidden = YES;
        
        ABPeoplePickerNavigationController *peoplePicker = [[ABPeoplePickerNavigationController alloc] init];
        peoplePicker.peoplePickerDelegate = self;
        peoplePicker.delegate = self;
        [self presentViewController:peoplePicker animated:YES completion:nil];
    }
    
    #pragma mark - 打开通讯录
    
    #pragma mark - ABPeoplePickerNavigationControllerDelegate
    - (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker
    {
        [peoplePicker dismissViewControllerAnimated:YES completion:^{}];
    }
    
    
    // Called after a person has been selected by the user.
    - (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker didSelectPerson:(ABRecordRef)person NS_AVAILABLE_IOS(8_0)
    {
        ABMultiValueRef phoneNumbers = (ABMultiValueRef)ABRecordCopyValue(person, kABPersonPhoneProperty);
        NSString * phone  = @"";
        if (phoneNumbers) {
            //CFIndex count = ABMultiValueGetCount(phoneNumbers);
            phone = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
            CFRelease(phoneNumbers);
        }
    //    
    //    NSString * firstname = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonLastNameProperty)); ////    NSString * lastname = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonFirstNameProperty)); ////    NSString * name = [firstname==nil?@"":firstname stringByAppendingString:lastname==nil?@"":lastname];
        
        if(phone.length && [phone hasPrefix:@"+86"]){
            phone = [phone substringFromIndex:3];
        }
        
        phone =  [phone stringByReplacingOccurrencesOfString:@"-" withString:@""];
        self.searchTField.text = phone;
        
        [peoplePicker dismissViewControllerAnimated:NO completion:^{
        
            [self.searchTField becomeFirstResponder];
        }];
    }
    
    // Deprecated, use predicateForSelectionOfPerson and/or -peoplePickerNavigationController:didSelectPerson: instead.
    - (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person NS_DEPRECATED_IOS(2_0, 8_0)
    {
        ABMultiValueRef phoneNumbers = (ABMultiValueRef)ABRecordCopyValue(person, kABPersonPhoneProperty);
        NSString * phone  = @"";
        if (phoneNumbers) {
            //CFIndex count = ABMultiValueGetCount(phoneNumbers);
            phone = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
            CFRelease(phoneNumbers);
        }
        
        NSLog(@"phone=%@",phone);
        
        if(phone.length && [phone hasPrefix:@"+86"]){
            phone = [phone substringFromIndex:3];
        }
        
        phone =  [phone stringByReplacingOccurrencesOfString:@"-" withString:@""];
        
        self.searchTField.text = phone;
        
        [peoplePicker dismissViewControllerAnimated:YES completion:^{}];
        
        return NO;
    }
  • 相关阅读:
    相机标定之四个坐标系及其关系
    VR、AR和MR的区别?
    Django 中使用流响应处理视频的方法
    mysql_num_fielfs_php mysql_num_rows和mysql_num_fields获取结果集总行数和总列数
    mysql中文乱码
    redisson分布式锁:Redis分布式锁报错,Redisson出错:Unable to send command!
    SpringBoot整合redis, RedisTemplate默认使用Lettuce客户端超时问题
    spring security登录后访问接口403 forbidden的坑
    redis锁,redis分布式锁: RedisLock
    微信urlscheme.generate:h5跳转到小程序(支持微信内h5,浏览器)
  • 原文地址:https://www.cnblogs.com/h-tao/p/4981067.html
Copyright © 2011-2022 走看看