Jak skopiować tekst do schowka / stołu roboczego za pomocą Swift


184

Szukam czystego przykładu, jak skopiować tekst do schowka na iOS, którego można następnie użyć / wkleić w innych aplikacjach.

Zaletą tej funkcji jest to, że tekst można szybko skopiować, bez standardowych funkcji podświetlania tekstu tradycyjnego kopiowania tekstu.

Zakładam, że są kluczowe klasy UIPasteboard, ale nie mogę znaleźć odpowiednich obszarów w podanym przez nich przykładzie kodu .


Odpowiedzi:


449

Jeśli wszystko, czego chcesz, to zwykły tekst, możesz po prostu użyć stringwłaściwości . Jest zarówno czytelny, jak i zapisywalny:

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

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

(Podczas czytania ze schowka dokumentacja UIPasteboard sugeruje również, że możesz najpierw sprawdzić hasStrings, „aby uniknąć niepotrzebnej próby pobrania danych przez system, zanim będzie on potrzebny lub gdy dane mogą nie być obecne”, na przykład podczas korzystania z funkcji Handoff .)


Może to działać dobrze, ale czy nie zdarza się, że użytkownik ma obrazy lub pliki w skopiowanej treści?
zwycięzca

UIPasteboard.general.stringdziała również w wersji szybkiej 4.x
spnkr

Jak mogę skopiować czcionkę ze stylem czcionki?
Krunal Nagvadia

57

Ponieważ kopiowanie i wklejanie odbywa się zwykle parami, jest to dodatkowa odpowiedź na dobrą, zwięzłą odpowiedź @jtbandes. Pierwotnie przybyłem tutaj, szukając sposobu wklejenia.

iOS ułatwia to, ponieważ ogólny karton może być używany jak zmienna. Po prostu weź i ustaw UIPasteboard.general.string.

Oto przykład pokazujący, że oba są używane z UITextField:

Kopiuj

UIPasteboard.general.string = myTextField.text

Pasta

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

Zauważ, że łańcuch kartonu jest Opcjonalny, więc najpierw należy go rozpakować.


Jak mogę skopiować tekst ze stylem czcionki. Więc mogę użyć tego stylu czcionki
Krunal Nagvadia

@KrunalNagvadia, Nie możesz kopiować tekstu ze stylem czcionki, ale możesz uzyskać informacje o czcionce za pomocą myTextField.font. Możesz zapisać te informacje osobno i zastosować je gdzie indziej.
Suragch

dobrze, co jeśli skopiuję tekst z mojej aplikacji i wkleję go do WhatsApp lub innej aplikacji Dozujesz styl obsługi?
Krunal Nagvadia

@KrunalNagvadia, Nie, system iOS UIPasteboardnie obsługuje stylizacji. Stylizację możesz obsługiwać tylko we własnej aplikacji.
Suragch

7

Kopiowanie tekstu z aplikacji do schowka:

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.