2

実施しています

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

をサブクラス化するカスタム クラスでデリゲートしABPersonViewControllerます。デリゲート メソッドは、ABPersonViewControllerサブクラス内でクリック イベントをキャッチしています。しかし、どのフィールドが正確にクリックされたかを知るにはどうすればよいでしょうか。たとえば。ホームアドレスフィールドをクリックした場合、デリゲートメソッド内でこのケースをどのように処理しますか?

4

1 に答える 1

2
- (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などの他のすべてのプロパティを確認できるのと同じように。

于 2012-05-01T08:20:57.660 に答える