วิธีการคัดลอกข้อความไปยังคลิปบอร์ด / กระดาษติดด้วย Swift


184

ฉันกำลังมองหาตัวอย่างที่ชัดเจนเกี่ยวกับวิธีคัดลอกข้อความไปยังคลิปบอร์ด iOS ที่สามารถใช้ / วางในแอปอื่น ๆ ได้

ประโยชน์ของฟังก์ชั่นนี้คือสามารถคัดลอกข้อความได้อย่างรวดเร็วโดยไม่ต้องเน้นฟังก์ชั่นข้อความมาตรฐานของการคัดลอกข้อความแบบดั้งเดิม

ฉันสมมติว่าคลาสที่สำคัญอยู่ในUIPasteboardแต่ไม่สามารถหาพื้นที่ที่เกี่ยวข้องในตัวอย่างรหัสพวกเขาจัดหา


1
วัตถุประสงค์ -C: hayageek.com/uipasteboard-example-read-write-share
Iducool

คำตอบ:


449

หากสิ่งที่คุณต้องการคือข้อความล้วนคุณสามารถใช้stringคุณสมบัตินี้ได้ มันทั้งอ่านได้และเขียนได้:

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

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

(เมื่ออ่านจากคลิปบอร์ดเอกสารประกอบ UIPasteboardยังแนะนำว่าคุณอาจต้องการตรวจสอบก่อนhasStrings"เพื่อหลีกเลี่ยงการทำให้ระบบพยายามดึงข้อมูลโดยไม่จำเป็นก่อนที่จะต้องใช้หรือเมื่อไม่มีข้อมูล" เช่นเมื่อใช้ Handoff .)


สิ่งนี้อาจทำงานได้ดี แต่ไม่เกิดขึ้นว่าผู้ใช้มีภาพหรือไฟล์ในเนื้อหาที่คัดลอกหรือไม่
ผู้ชนะ

UIPasteboard.general.stringทำงานได้อย่างรวดเร็ว 4.x เช่นกัน
spnkr

ฉันจะคัดลอกแบบอักษรด้วยรูปแบบตัวอักษรได้อย่างไร
Krunal Nagvadia

57

เนื่องจากการคัดลอกและวางโดยปกติแล้วจะทำเป็นคู่นี่คือคำตอบเพิ่มเติมของ @jtbandes คำตอบที่ดีและกระชับ ฉันมาที่นี่เพื่อดูวิธีการวาง

iOS ทำให้การทำเช่นนี้เป็นเรื่องง่ายเพราะสามารถใช้งานกระดาษแข็งทั่วไปได้เหมือนตัวแปร UIPasteboard.general.stringเพิ่งได้รับและการตั้งค่า

นี่คือตัวอย่างที่แสดงให้เห็นว่าทั้งสองใช้กับUITextField:

สำเนา

UIPasteboard.general.string = myTextField.text

วาง

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

โปรดทราบว่าสตริงการวางเป็นตัวเลือกดังนั้นมันจะต้องมีการแกะก่อน


ฉันจะคัดลอกข้อความด้วยรูปแบบตัวอักษรได้อย่างไร ดังนั้นฉันสามารถใช้รูปแบบตัวอักษรนั้นได้
Krunal Nagvadia

@KrunalNagvadia คุณไม่สามารถคัดลอกข้อความด้วยสไตล์แบบอักษร แต่คุณสามารถรับข้อมูลแบบอักษรmyTextField.fontได้ คุณสามารถบันทึกข้อมูลนั้นแยกต่างหากและนำไปใช้ที่อื่น
Suragch

ตกลงถ้าฉันคัดลอกข้อความจากแอพของฉันและวางลงใน WhatsApp หรือแอพอื่น ๆ รองรับสไตล์หรือไม่
Krunal Nagvadia

@KrunalNagvadia, ไม่, ระบบ iOS UIPasteboardไม่รองรับสไตล์ คุณสามารถจัดการสไตล์ในแอพของคุณเอง
Suragch


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.