Wie kann ich mit dropInteraction(_ interaction: UIDropInteraction, performDrop session: UIDropSession)
andere Dateitypen als Bilder akzeptieren? Sagen Sie mir zum Beispiel, dass ich eine PDF oder MP3 aus der Files App ziehe. Wie kann ich diese Datei akzeptieren und die Daten erhalten?
Ich dachte, ich könnte NSURL.self verwenden, aber das scheint nur für URLs zu funktionieren, die von Safari und einer Textansicht gezogen wurden.
Innerhalb von dropInteraction
rufen Sie session.loadObjects(ofClass:)
auf, das Sie wahrscheinlich bereits haben, und haben UIImage
und NSURL
ausprobiert.
ofClass
muss mit NSItemProviderReading
( Dokumentation ) übereinstimmen. Die entsprechenden Standardklassen lauten NSString
, NSAttributedString
, NSURL
, UIColor
und UIImage
. Für alles andere denke ich, dass Sie eine benutzerdefinierte Klasse erstellen müssen, die dem Protokoll entspricht, indem Sie public.mp3
als UTI . Ihre benutzerdefinierte Klasse wird einen init(itemProviderData: Data, typeIdentifier: String)
Initialisierer haben, der Ihnen eine Tasche mit Bytes ( itemProviderData
) geben soll, das sind die MP3-Daten. Von dort sollten Sie Ihre Datei nach Bedarf schreiben können.
Tags und Links ios drag-and-drop ios11