MacOS アプリ開発で、コピペ対応に必要となる NSPasteboard の使い方を説明します。
Sponsor Link
NSPasteboard
Apple のドキュメントは、こちら。
NSPasteboard がコピペの背景にあるクリップボードを表すクラスです。
アプリ間で横断的に使えるようにするためには、NSPasteboard.general で取得できるオブジェクトを使う必要があります。
文字列をセットするのは簡単
クリップボードには、いろいろなオブジェクトを保持することができますが、文字列をセットするのは非常に簡単で、それ用の API が用意されています。
クリップボードに文字列をセットする
NSPasteboard.general.clearContents()
NSPasteboard.general.setString("TextDataFromApp", forType: .string)
上記のコードを実行すると、”TextDataFromApp”という文字列が、クリップボードにセットされます。
気をつけなければいけない点は、セットする前に、clearContents() を呼ぶ必要がある点です。
clearContents を呼び出さないと、setString で false が返されます(セットできなかったことを表します)。
まとめ:文字列をクリップボードにセットする方法
文字列をクリップボードにセットする方法
- NSPasteboard.general を使って、アプリ間で共有されているクリップボードを取得
- setString を使って、セットしたい文字列を設定する
- clearContents を使って、クリアしてから、セットする(⬅️忘れがち)
説明は以上です。
Sponsor Link