Обработка событий нажатия внутри 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 и т. д.