Обработка событий нажатия внутри ABPersonViewController

Я реализую

- (BOOL)personViewController:(ABPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier

делегировать в моем пользовательском классе, какие подклассы ABPersonViewController, Метод делегата перехватывает события щелчка внутри ABPersonViewController подкласс. Но как я узнаю, какое именно поле было щелкнуто? Например, если я нажму на поле домашнего адреса, как я буду обрабатывать этот случай в методе делегата.

1 ответ

Решение
- (BOOL)personViewController:(ABPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{
if(property == kABPersonAddressProperty){
    ABMutableMultiValueRef multi = ABRecordCopyValue(person, property);
    CFStringRef address = ABMultiValueCopyValueAtIndex(multi, identifier);
    NSLog(@"Address %@", (NSString *)address);
    // Do your tasks here
    CFRelease(address);
}
return YES;
}

Как kABPersonAddressProperty Вы можете проверить все другие свойства, такие как номер телефона, адрес электронной почты, URL и т. д.

Другие вопросы по тегам