我正在实施

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

在我的自定义类中委托,该类继承了ABPersonViewController。委托方法正在ABPersonViewController子类内部捕获click事件。但是我将如何知道确切单击了哪个字段。例如。如果单击家庭住址字段,我将如何在委托方法中处理这种情况。

最佳答案

- (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等。

关于iphone - 处理ABPersonViewController内部的单击事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10394637/

10-14 05:05