Partager/copier une URL avec Catalyst
Quand on partage une URL avec UIActivityViewController
, iOS propose de la copier dans le presse-papiers. Rien de plus normal. Mais si on compile ce même code pour macOS avec Catalyst, cette option n’est pas proposée.

Heureusement, il existe une solution pour proposer la copie d’une information (URL ou autre) sur macOS : il suffit d’implémenter la fonction copy(_:)
, en passant une valeur à UIPasteboard.general
. Par exemple :
override func copy(_ sender: Any?) {
UIPasteboard.general.string = playground?.shareUrl
}
Vous pouvez placer ce code dans un UIViewController
si cela concerne tout l’écran, ou bien dans une UIView
pour copier un élément plus spécifique. En fait, l’application analyse la responder chain, et utilise le premier objet qui implémente cette fonction.
C’est d’autant plus intéressant que macOS gère tout le reste automatiquement. Le menu « Édition » activera l’élément « Copier » dynamiquement et le raccourci clavier ⌘C
fonctionnera normalement. En bonus, si vous utilisez cette application sur iPad avec un clavier externe, l’option sera également proposée.
Une façon simple et rapide pour améliorer vos applications avec Catalyst.