web-dev-qa-db-fra.com

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

Je cherche un exemple clair sur 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 de clés sont dans UIPasteboard, mais je ne trouve pas les zones appropriées dans exemple de code fourni .

151
Garry Law

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

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

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

(Lorsque lit dans le presse-papiers, , la documentation de UIPasteboard suggère également que vous souhaitiez d'abord vérifier hasStrings , "pour éviter que le système n'essaye inutilement de récupérer des données avant qu'elles ne soient nécessaires ou lorsque les données risquent de ne pas être présentes", par exemple lors de l'utilisation de Handoff.)

370
jtbandes

Puisque copier et coller se fait généralement par paires, c’est une réponse complémentaire à @jtbandes bonne, réponse concise. À l'origine, je suis venu ici en cherchant comment coller.

iOS rend cela facile parce que le presse-papiers général peut être utilisé comme une variable. Il suffit d’obtenir et de définir UIPasteboard.general.string.

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

Copier

UIPasteboard.general.string = myTextField.text

Coller

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

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

45
Suragch

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

let pasteboard = UIPasteboard.general
pasteboard.string = employee.phoneNumber
6
Raj Joshi

Swift 4

UIPasteboard.general.string = "TEXT"
3
Álvaro Agüero