ABPersonViewControllerDelegate
协议要求实施方法func personViewController(personViewController: ABPersonViewController!, shouldPerformDefaultActionForPerson person: ABRecord!, property: ABPropertyID, identifier: ABMultiValueIdentifier) -> Bool
。
只要用户选择ABPersonViewController
中的任何联系信息,就会调用它,并且它包含描述联系人所需的所有信息:property
和identifier
参数。
ABPersonViewController
类还包含func setHighlightedItemForProperty(_ property: ABPropertyID, withIdentifier identifier: ABMultiValueIdentifier)
,它突出显示其参数描述的联系信息。
简单地将这两个功能结合起来,我认为如果我想突出显示用户选择的任何信息,那就简单如下:
func personViewController(personViewController: ABPersonViewController!,
shouldPerformDefaultActionForPerson person: ABRecord!,
property: ABPropertyID, identifier: ABMultiValueIdentifier) -> Bool {
personViewController.setHighlightedItemForProperty(property, withIdentifier: identifier)
}
然而,这似乎没有任何影响,并且除了短暂的突出之外没有可见的突出显示,当按下一个联系信息项时总是会发生(要清楚:我希望突出显示持续,至少直到用户再次按下该项目。)
编辑:如果这个(即临时突出显示)确实是预期的行为,我该如何实现或修改此功能,以便突出显示(直到它关闭)。鉴于ABPersonViewController
不可归类(也许是我自己发明的一个词),这似乎特别困难。