3 votes

Faites glisser et déposez en utilisant swift 4 sur mac OS

Je suis en train d'utiliser swift 4 et Xcode 9 et j'ai un problème avec l'implémentation du glisser-déposer. J'ai une vue personnalisée 'destination' pour les drop et en swift 3 je fais

register(forDraggedTypes: Array(NSURLPboardType))

pour accepter les glisser-déposer qui contiennent ces types. Comment puis-je faire quelque chose comme ça en swift 4? Maintenant j'ai ce code

registerForDraggedTypes([.pdf])

Et aucune méthode NSDraggingDestination n'est appelée lorsque je dépose un pdf dans ma vue. (ma vue personnalisée est au-dessus)

6voto

Igor Voitenko Points 127

Alors, mon collègue a trouvé la solution à ce problème, en swift 4 vous devez utiliser kUTTypes casté en String pour le glisser-déposer, comme ceci:

registerForDraggedTypes([NSPasteboard.PasteboardType(rawValue: kUTTypeFileURL as String), NSPasteboard.PasteboardType(rawValue: kUTTypeItem as String)])

Avec ce code, toutes les méthodes de NSDraggingDestination fonctionnent correctement, vous pouvez faire glisser n'importe quel fichier depuis le finder dans votre vue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X