Xcode9.0でビルドしたアプリをiOS11.0.1の端末で動かした時に発生した問題のメモ。
現象:昔使えていたiPhoneのクリップボードにテキストをコピーする処理が、動かない(実際はコピーできているが、ペーストできない。)
iOS8とか、iOS9の時代には、以下の方法で、iPhoneのクリップボードにテキストコピーして、ペーストできていた。
1 2 3 4 5 |
//iOS8,iOS9時代のクリップボードへのコピー方法 let board = UIPasteboard.general board.setValue("コピーする文字列", forPasteboardType: "public.text") // |
最近、iOS Deployment Target を8.0にしていたアプリを、iOS Deployment Target 9.0にしたことも関係しているのかも。
もしくは、iOS11のiPhoneだからなのか、Xcode9.0だからなのかまだ調査中。
謎なのが、クリップボードには、コピーされているんだけど、なぜかペーストできない。
UIPasteboard.general.value(forPasteboardType: “public.text”))
上記のメソッドで、クリップボードに保持しているテキスト文字列を取得できるけど、こちらでは、テキストが入っていた。
で、一応、解決法は以下。
1 2 3 4 |
//Xcode9.0でコピーしたテキストがペーストできない時の解決法 let board = UIPasteboard.general board.string = textinput.text |
UIPasteboard.generalのstringに文字列を指定することで、クリップボードにコピーしたテキストがペーストできました。
多分、iOS10からUIPasteboardの仕様変更があったことが原因だと思われます。
↓こちらを参考にしました。
[iOS 10] UIPasteboardに新しく追加されたメソッドについて
コメントを残す