クリップボードへ文字や画像をコピーする方法です。
簡単なんだけどあまり使わないし。
絶対忘れるゼ (σ・ω・)σ
ってわけで、忘れないようまとめます。
テキストをコピーする
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」∠)_
違うよ!とかこういう方法あるよ!ってのがあれば教えてください。
では( ¯·ω·¯ )

 
  
  
  
  

コメント