저는 Swift에서 코딩하고 자신을 가르치려는 것이 매우 새로 습득되었습니다. Swift 3의 ContactPicker View UI에서 여러 항목을 선택하는 방법을 알아내는 데 어려움을 겪고 있습니다.Swift에서 ContactUI의 다중 선택 3
설명서를 읽는 중에 여러 항목을 선택하려면 [CNContactProperty]
을 사용해야하지만 모호합니다. 이렇게하면 배열의 멤버가 아니기 때문에 givenName 및 값을 인쇄하기 위해 속성을 호출 할 수 없습니다. 또한 [CNContactProperty]
의 구문을 사용할 때 내 선택기보기가 선택을 끝내기 위해 "완료"버튼을 표시하지 않습니다. 피커보기에서 벗어나는 유일한 방법은 취소입니다.
Swift의 이전 버전에 대한 여러 답변을 찾았지만 Swift 3에서이 기능을 사용하는 방법에 관심이 있습니다. 궁극적으로 UIMessageComposer
의 연락처 필드를 미리 채워서 배열을 보내기 단추를 한 번 누름으로써. 당신의 CNContactPickerDelegate
구현에서
// this is the code that works for a single selection
import UIKit
import ContactsUI
import Contacts
class MainViewController: UIViewController, CNContactPickerDelegate {
// select Contacts to message from "Set Up" Page
@IBAction func pickContacts(_ sender: Any) {
let contactPicker = CNContactPickerViewController()
contactPicker.delegate = self
contactPicker.displayedPropertyKeys = [CNContactPhoneNumbersKey]
self.present(contactPicker, animated: true, completion: nil)
}
//allow contact selection and dismiss pickerView
func contactPicker(_ picker: CNContactPickerViewController, didSelect contactsProperty: CNContactProperty) {
let contact = contactsProperty.contact
let phoneNumber = contactsProperty.value as! CNPhoneNumber
print(contact.givenName)
print(phoneNumber.stringValue)
}
고맙습니다. 선생님은 생명의 은인입니다. "print (phoneNumber)"명령은 여전히 나에게 긴 문자열을 주었지만 약간의 변경을가했습니다. 아직도 당신에게 충분히 감사 할 수 없습니다. // 전화 번호를 짧은 문자열로 바꾸기 /// phoneNumber = (contact.phoneNumbers [0] .value) .value (forKey : "digits")! – FatyP33
도와 드리겠습니다 :) 위의 답변이 도움이된다면 upvote를 잊어 버리지 말고 "올바른"것으로 표시하십시오. – Fahim