Comment copier du texte dans le presse-papiers / le presse-papier avec Swift


184

Je recherche un exemple clair de la façon de copier du texte dans le presse-papiers iOS qui peut ensuite être utilisé / collé dans d'autres applications.

L'avantage de cette fonction est que le texte peut être copié rapidement, sans les fonctions de mise en évidence de texte standard de la copie de texte traditionnelle.

Je suppose que les classes clés sont dans UIPasteboard, mais je ne peux pas trouver les zones pertinentes dans l' exemple de code qu'elles fournissent .


Réponses:


449

Si tout ce que vous voulez est du texte brut, vous pouvez simplement utiliser la stringpropriété . C'est à la fois lisible et inscriptible:

// write to clipboard
UIPasteboard.general.string = "Hello world"

// read from clipboard
let content = UIPasteboard.general.string

(Lors de la lecture à partir du presse-papiers, la documentation UIPasteboard suggère également que vous voudrez peut-être vérifier d'abord hasStrings, "pour éviter que le système tente inutilement de récupérer des données avant qu'elles ne soient nécessaires ou lorsque les données peuvent ne pas être présentes", comme lors de l'utilisation de Handoff .)


Cela peut fonctionner correctement, mais ne se produit-il pas que l'utilisateur ait des images ou des fichiers dans son contenu copié?
victor

UIPasteboard.general.stringfonctionne aussi dans swift 4.x
spnkr

Comment copier une police avec un style de police?
Krunal Nagvadia

57

Étant donné que le copier-coller se fait généralement par paires, il s'agit d'une réponse supplémentaire à @jtbandes, bonne réponse concise. Je suis venu ici à l'origine pour voir comment coller.

iOS rend cela facile car la table de montage générale peut être utilisée comme une variable. Préparez-vous et préparez-vous UIPasteboard.general.string.

Voici un exemple montrant les deux utilisés avec un UITextField:

Copie

UIPasteboard.general.string = myTextField.text

Pâte

if let myString = UIPasteboard.general.string {
    myTextField.insertText(myString)
}

Notez que la chaîne de la table de montage est facultative, elle doit donc d'abord être déroulée.


Comment puis-je copier du texte avec un style de police. Je peux donc utiliser ce style de police
Krunal Nagvadia

@KrunalNagvadia, Vous ne pouvez pas copier du texte avec le style de police, mais vous pouvez obtenir les informations sur la police avec myTextField.font. Vous pouvez enregistrer ces informations séparément et les appliquer ailleurs.
Suragch

OK, que faire si je copie le texte de mon application et le colle dans WhatsApp ou dans une autre application Dose-t-il le style de support?
Krunal Nagvadia

@KrunalNagvadia, Non, le système iOS UIPasteboardne prend pas en charge le style. Vous ne pouvez gérer le style que dans votre propre application.
Suragch

7

Copie du texte de l'application dans le presse-papiers:

let pasteboard = UIPasteboard.general
pasteboard.string = employee.phoneNumber

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.