Come copiare il testo negli Appunti / Incolla con Swift


184

Sto cercando un chiaro esempio di come copiare il testo negli Appunti iOS che può quindi essere utilizzato / incollato in altre app.

Il vantaggio di questa funzione è che il testo può essere copiato rapidamente, senza le funzioni di evidenziazione del testo standard della copia di testo tradizionale.

Presumo che le classi chiave siano presenti UIPasteboard, ma non riesco a trovare le aree rilevanti nell'esempio di codice che forniscono .


Risposte:


449

Se tutto ciò che desideri è un testo semplice, puoi semplicemente utilizzare la stringproprietà . È sia leggibile che scrivibile:

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

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

(Durante la lettura dagli Appunti, la documentazione di UIPasteboard suggerisce anche che potresti voler prima controllare hasStrings"per evitare che il sistema tenti inutilmente di recuperare i dati prima che siano necessari o quando i dati potrebbero non essere presenti", come quando si utilizza Handoff .)


Questo potrebbe funzionare correttamente, ma non succede che l'utente abbia immagini o file nel suo contenuto copiato?
vincitore il

UIPasteboard.general.stringfunziona anche in rapido 4.x
spnkr

Come posso copiare font con stile font?
Krunal Nagvadia,

57

Poiché la copia e incolla vengono generalmente eseguite in coppia, questa è una risposta supplementare a @jtbandes risposta buona e concisa. Inizialmente sono venuto qui cercando come incollare.

iOS lo rende facile perché il pasteboard generale può essere usato come una variabile. Basta prendere e impostareUIPasteboard.general.string .

Ecco un esempio che mostra sia in uso con un UITextField:

copia

UIPasteboard.general.string = myTextField.text

Incolla

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

Nota che la stringa di pasteboard è un'opzione, quindi deve essere prima scartata.


Come posso copiare il testo con lo stile del carattere. Quindi posso usare quel tipo di carattere
Krunal Nagvadia

@KrunalNagvadia, Non puoi copiare il testo con lo stile del carattere, ma puoi ottenere le informazioni sul carattere con myTextField.font. È possibile salvare tali informazioni separatamente e applicarle altrove.
Suragch

ok cosa succede Se copio il testo dalla mia app e lo incollo in WhatsApp o in qualsiasi altra app Dose lo stile di supporto?
Krunal Nagvadia,

@KrunalNagvadia, No, il sistema iOS UIPasteboardnon supporta lo styling. Puoi gestire lo stile solo all'interno della tua app.
Suragch

7

Copia del testo dall'app negli Appunti:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.