我正在实施 ContactsUI 框架并且遇到 PredicateForSelectionOfContact 的问题。我正在尝试使用它,以便在选择具有多个电子邮件地址的联系人时显示详细信息。这是我正在使用的代码:
var picker = new CNContactPickerViewController();
picker.DisplayedPropertyKeys = new NSString[] {CNContactKey.EmailAddresses};
picker.PredicateForEnablingContact = NSPredicate.FromFormat("emailAddresses.@count > 0");
picker.PredicateForSelectionOfContact = NSPredicate.FromFormat("emailAddresses.@count == 1");
picker.ModalPresentationStyle = UIModalPresentationStyle.FormSheet;
picker.ModalTransitionStyle = UIModalTransitionStyle.CoverVertical;
picker.Delegate = new ContactPickerDelegate(ViewModel);
PresentViewController(picker, true, () => {});
但是,当我选择具有 2 个电子邮件地址的联系人时,ContactPickerDelegate.DidSelectContact()
会调用而不是显示详细信息。它确实显示了具有 3 个电子邮件地址的联系人的详细信息。我无法向联系人添加第四个电子邮件地址以进行进一步测试。为什么emailAddresses.@count == 1
不被尊重?