Swiftでテキストをクリップボード/ペーストボードにコピーする方法


184

テキストをiOSクリップボードにコピーして、他のアプリで使用/貼り付けする方法のわかりやすい例を探しています。

この機能の利点は、従来のテキストコピーの標準的なテキストハイライト機能なしで、テキストをすばやくコピーできることです。

主要なクラスがにあるUIPasteboardと想定していますが、それらが提供するコード例に関連する領域が見つかりません。


回答:


449

プレーンテキストだけが必要な場合は、stringプロパティを使用できます。読み書き可能です。

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

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

(クリップボードから読み取る場合、UIPasteboardのドキュメントhasStringsでは、Handoffを使用する場合など、「データが必要になる前に、またはデータが存在しない場合にシステムが不必要にデータをフェッチしようとするのを避けるために」を最初に確認することをお勧めします。。)


これは正常に機能している可能性がありますが、ユーザーがコピーしたコンテンツに画像やファイルがあることはありませんか?
ビクター

UIPasteboard.general.stringswift 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、

7

アプリからクリップボードにテキストをコピーする:

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.