Swift ile panoya / çalışma alanına metin kopyalama


184

Daha sonra diğer uygulamalarda kullanılabilen / yapıştırılabilen iOS panosuna metin kopyalamanın temiz bir örneğini arıyorum.

Bu işlevin yararı, metnin geleneksel metin kopyalamanın standart metin vurgulama işlevleri olmadan hızlı bir şekilde kopyalanabilmesidir.

Anahtar sınıflar içinde olduğunu varsayıyorum UIPasteboard, ancak sağladıkları kod örneğinde ilgili alanları bulamıyorum .


Yanıtlar:


449

İstediğiniz tek şey düz metinse, stringözelliği kullanabilirsiniz . Hem okunabilir hem de yazılabilir:

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

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

( Panodan okurken , UIPasteboard belgeleri ayrıca hasStrings"sistemin gerekmeden önce veya veri bulunmayabilirken gereksiz yere veri almaya çalışmasına neden olmaktan kaçınmak için" ( örneğin Handoff'u kullanırken) ilk kontrol etmek isteyebileceğinizi önermektedir. .)


Bu iyi çalışıyor olabilir, ancak kullanıcının kopyalanan içeriğinde resim veya dosya olması gerekmez mi?
victor

UIPasteboard.general.stringhızlı 4.x de çalışır
spnkr

Yazı tipini yazı tipi stiliyle nasıl kopyalayabilirim?
Krunal Nagvadia

57

Kopyalama ve yapıştırma genellikle çiftler halinde yapıldığından, bu @jtbandes'a iyi ve özlü bir cevap için ek bir cevaptır. Aslında buraya nasıl yapıştırılacağına baktım.

iOS bunu kolaylaştırır çünkü genel çalışma alanı bir değişken gibi kullanılabilir. Sadece al ve ayarlaUIPasteboard.general.string .

Her ikisinin a ile birlikte kullanıldığını gösteren bir örnek UITextField:

kopya

UIPasteboard.general.string = myTextField.text

Yapıştırmak

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

Çalışma alanı dizesinin İsteğe bağlı olduğunu unutmayın, bu nedenle önce paketin açılması gerekir.


Yazı tipini kullanarak metni nasıl kopyalayabilirim. Bu yazı tipini kullanabilirim Stil
Krunal Nagvadia

@KrunalNagvadia, Yazı tipi stiliyle metin kopyalayamazsınız, ancak yazı tipi bilgisini alabilirsiniz myTextField.font. Bu bilgileri ayrı ayrı kaydedebilir ve başka bir yere uygulayabilirsiniz.
Suragch

tamam ne benim app metin kopyalamak ve WhatsApp veya başka bir uygulama içine yapıştırın Ben stil destek Doz?
Krunal Nagvadia

@KrunalNagvadia, Hayır, iOS sistemi UIPasteboardşekillendirmeyi desteklemiyor. Sadece kendi uygulamanızdaki stilleri kullanabilirsiniz.
Suragch

7

Uygulamadan panoya metin kopyalama:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.