クリップボードへ文字や画像をコピーする方法です。
簡単なんだけどあまり使わないし。
絶対忘れるゼ (σ・ω・)σ
ってわけで、忘れないようまとめます。
テキストをコピーする
forPasteboardType というデータの型を指定することも出来ますが、一番シンプルなのはコレです。
1 |
UIPasteboard.general.string = "コピーしたい文字列" |
画像をコピーする
画像のプロパティは単数と複数で分かれてます。
1 2 3 4 |
// 単数 UIPasteboard.general.image = UIImage(named: "FileName1") // 複数 UIPasteboard.general.images = [UIImage(named: "FileName1")!, UIImage(named: "FileName2")!] |
文字と画像をコピーする
上記の方法を組み合わせて実行しても、ちゃんとペーストされません。
1 2 3 4 5 6 7 8 9 10 11 |
//----- 検証1 -----// UIPasteboard.general.string = "コピーしたい文字列" print(UIPasteboard.general.string) // Optional("コピーしたい文字列") UIPasteboard.general.image = UIImage(named: "FileName1") print(UIPasteboard.general.string) // nil //----- 検証2 -----// UIPasteboard.general.image = UIImage(named: "FileName1") print(UIPasteboard.general.image) // Optional(<UIImage: 0x28089b790 ... UIPasteboard.general.string = "コピーしたい文字列" print(UIPasteboard.general.image) // nil |
先にコピーしたものは、文字列だろうと画像だろうと削除されます (´・ε・`)
ペーストされる時は最後にコピーしたものだけです。
なので、1つにまとめるには setItems(_:options:) を使います。
1 2 3 4 5 |
let items: [[String: Any]] = [["public.utf8-plain-text": text], ["public.image": UIImage(named: "FileName1")!], ["public.image": UIImage(named: "FileName2")!]] let options: [UIPasteboard.OptionsKey : Any] = [.expirationDate: Date().addingTimeInterval(60 * 60 * 24)] UIPasteboard.general.setItems(items, options: options) |
ここでは、forPasteboardType を指定します。
テキストは “public.utf8-plain-text”、画像は “public.image” を指定。
オプションは、24時間経過したら自動的に消えるよう設定しています。
これを実行してメモアプリに貼り付けると。
ちゃんとペーストされやしたー!
さいごに
画像と文字を同時に貼り付けるの、地味にこまりた。w
あまり使う機会はないと思いますが、備忘録として _(:3」∠)_
違うよ!とかこういう方法あるよ!ってのがあれば教えてください。
では( ¯·ω·¯ )
コメント