我正在打开一个CNContactPickerViewController以供在应用程序中使用,但我想要改变它呈现的方式以适合我的应用程序需求,最好不要滚动我自己并做大量重新发明的轮子。这就是我如何使用Objective-C打开它....是否可以自定义CNContactPickerViewController?
self.contactPicker = [[CNContactPickerViewController alloc] init];
self.contactPicker.delegate = self;
//Only enable contacts to be selected that have atleast one email address
NSArray *propertyKeys = @[CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey];
NSPredicate *enablePredicate = [NSPredicate predicateWithFormat:@"[email protected] != 0"];
self.contactPicker.displayedPropertyKeys = propertyKeys;
self.contactPicker.predicateForEnablingContact = enablePredicate;
[self presentViewController:self.contactPicker animated:YES completion:nil];
当它打开它目前看起来是这样的:
然而,由于SDK中搜索错误对于这类视图中的人无效,因为您无法从搜索结果中进行选择。我要为此提交一个错误,但同时首先我想隐藏搜索栏。我发现了一些关于删除SearchBar的旧问题,但它们与ABPeoplePickerNavigationController相关,并且与CNContacts无关。 我也不希望使用组,如果我可以删除该按钮,并将取消按钮移到左侧,这将是伟大的,并会使我的应用程序中的选择界面更清洁。这是我想它看起来:
谁能告诉我,如果这是可能的,也许指向我朝着正确的方向?我有委托方法选择后接收联系人数组,我的问题是它在应用程序中的样子。
在此先感谢!
等离子
感谢您的答复,但正如我在文章中提到的,我没有问题检索和管理联系人/返回的结果。问题在于默认Apple ContactPicker GUI的外观以及“搜索”不起作用的事实。我没有看到通过编码我自己的视图控制器来重新发明轮子的意义,如果只需稍作调整,标准控制器也可以发挥作用。 – Plasma
@plasma你发现了什么,或者你最终做了什么?这个问题让我感到无法接受。看起来好像CNContactPickerViewController被苹果公司的几个iOS之前的版本所遗留下来,它是无法使用的,错误缠身的状态。我发现很难相信苹果没有人能够通过至少删除无用的搜索栏来解决这个问题,因为这个搜索栏使得这个控制器无法使用。 – SAHM
我没有得到任何地方,我看了几个做类似事情的github项目,但不喜欢其中的任何一个。我暂时搁置了这个项目,直到我有时间推出自己的产品并从那里出发。 – Plasma