Я пытаюсь создать простое тестовое приложение для изучения API Drag and Drop.В этом вопросе я остановлюсь только на сценарии отбрасывания.У меня есть пустой View Controller, с открытым приложением safari (многозадачность), а затем я пытаюсь перетащить изображение из Google в представление View Controller.
Я могу перетащить изображение из safari в View Controller моего приложения, но когда я отпускаю, этот вызов ниже никогда не вызывается:
func dropInteraction(_ interaction: UIDropInteraction, performDrop session: UIDropSession)
Это мой код:
class EditTestVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
view.addInteraction(UIDropInteraction(delegate: self))
}
}
extension EditTestVC:UIDropInteractionDelegate {
func dropInteraction(_ interaction: UIDropInteraction, canHandle session: UIDropSession) -> Bool { // 1
print("canHandle session: \(session)")
return true
// return session.canLoadObjects(ofClass: UIImage.self)
}
func dropInteraction(_ interaction: UIDropInteraction, sessionDidUpdate session: UIDropSession) -> UIDropProposal { // 2
print("sessionDidUpdate session: \(session)")
return UIDropProposal(operation: .copy)
}
func dropInteraction(_ interaction: UIDropInteraction, performDrop session: UIDropSession) {
print("performDrop session: \(session)")
}
}
Вызваны два верхних метода, этот:
func dropInteraction(_ interaction: UIDropInteraction, canHandle session: UIDropSession) -> Bool
и этот:
func dropInteraction(_ interaction: UIDropInteraction, sessionDidUpdate session: UIDropSession) -> UIDropProposal
Итак, я пытаюсь выяснить, почему этот:
func dropInteraction(_ interaction: UIDropInteraction, performDrop session: UIDropSession)
никогда не вызывается.
Есть предложения?