1

在为 iPhone/iPad 编写应用程序时,我喜欢限制通讯簿中可以编辑的字段。

例如,每个联系人都有姓名、电话号码、电子邮件和地址。我想只允许编辑电话号码和电子邮件字段,并简单地显示名称和地址,而无需更改它们的选项,因为名称和地址字段已在应用程序的其他地方创建。

在调用允许编辑联系人记录的通讯簿功能时,是否可以具有这种选择性?似乎并非如此,因为编辑的选择似乎只是“是”或“否”。

4

1 回答 1

0

你有几个选择:

  • 实现您自己的编辑器,而不是使用 ABPersonViewController。这是最好的方法,因为您可以显示您想要的任何内容并将编辑限制为您想要的任何属性。但这需要最大的努力才能完成。

  • 创建一个单独的 ABRecordRef 实例,其中仅包含可编辑的属性,并在编辑后将编辑后的值复制回原始 ABRecordRef。这是一个糟糕的选择,因为只有那些可编辑的属性才会可见。

  • 创建 ABPersonRef 的精确副本并将其分配给 ABPersonViewController。编辑完成后,只需将所需属性复制回原始 ABPersonRef。这比第二个选项要好,因为所有属性都会显示,但如果允许用户执行未保存的编辑,则会混淆用户。

于 2013-09-16T22:04:39.357 回答