一段时间以来,我一直在寻找解决方案,但找不到实现此目的的东西(下面提供的屏幕截图)。
我正在创建一个自定义ContactsViewController
,它将CNContact
框架用于CRUD功能。除了选择电话号码标签外,所有人都清楚如何实现它们。是否有诸如Picker View Controller这样的东西,还是应该手动实现?
答案 0 :(得分:1)
您应该手动实现该屏幕。屏幕快照上的屏幕是一个UITableViewController
,其中有一组UITableView
和一个选中单元格的选中标记附件指示符。
以下是预定义的电话号码标签的列表(来自the Apple Developer Documentation):
╔════════════════════════════╦═════════════════════╗ ║ String ║ Description ║ ╠════════════════════════════╬═════════════════════╣ ║ CNLabelHome ║ Home label ║ ║ CNLabelWork ║ Work label ║ ║ CNLabelPhoneNumberiPhone ║ iPhone number ║ ║ CNLabelPhoneNumberMobile ║ Mobile phone number ║ ║ CNLabelPhoneNumberMain ║ Main phone number ║ ║ CNLabelPhoneNumberHomeFax ║ Home fax number ║ ║ CNLabelPhoneNumberWorkFax ║ Work fax number ║ ║ CNLabelPhoneNumberOtherFax ║ Other fax number ║ ║ CNLabelPhoneNumberPager ║ Pager phone number ║ ╚════════════════════════════╩═════════════════════╝
要显示这些常量的本地化名称,请使用CNLabeledValue.localizedString(forLabel:)
(感谢OOPer):
快速
let localizedLabelString = CNLabeledValue<NSString>.localizedString(forLabel: CNLabelPhoneNumberiPhone)
print(localizedLabelString) //iPhone
Objective-C
NSString *localizedLabelString = [CNLabeledValue localizedStringForLabel: CNLabelPhoneNumberiPhone];
NSLog(@"%@", localizedLabelString); //iPhone
如果要为联系人创建自定义标签,只需使用任意字符串作为标签名称:
let phoneNumber = CNPhoneNumber(stringValue: "+18001234567")
let labeledPhoneNumber = CNLabeledValue(label: "arbitrary string", value: phoneNumber)
contact.phoneNumbers.append(labeledPhoneNumber)