ペーストボード
ペーストボードは、アプリケーション内または間のデータ交換のための安全かつ標準化されたメカニズムです。多くの操作は、ペーストボード、すなわちコピー、カット、ペーストに依存しています。OS X上では、ドラッグ・アンド・ドロップ操作とアプリケーション・サービスは、ペーストボードに依存しています。またアプリケーション間でデータ共有が望ましい他の状況でもペーストボードを使用できます。
AppKit フレームワークのペーストボードは NSPasteboard クラスのインスタンスで表されます。UIKit フレームワークの同等クラスは UIPasteboard です。ペーストボード・オブジェクトは、ライター·オブジェクトとリーダーオブジェクトがデータを交換する時に出会う共有リポジトリにアクセスします。また、ペーストボードの所有者であるライター・オブジェクトは、ペーストボードインスタンス上のデータを預け、移って行きます。リーダー・オブジェクトはペーストボードに非同期的にアクセスし、そのアドレス空間にデータをコピーします。
ペーストボードは、複数のアプリケーションにとって public または private であることができます。public ペーストボードは、システムで提供され、すべてのアプリケーションで使用できます。すべてのペーストボードは、public と private で、固有の名前を持っていなければなりません。両方のプラットフォームは、汎用のペーストボードと検索操作で使用されるペーストボードを持っています。iOS ではこれらのペーストボードは UIPasteboardNameGeneral と UIPasteboardNameFind という名前が付けられており、OS X では、それらは NSGeneralPboard と NSFindPboard という名前が付いています。 OS X には、定規、フォント、およびドラッグアンドドロップ操作のため追加で付けられた名前のシステムペーストボードがあります。どちらのプラットフォーム上のアプリケーションでも、通常、システムのペーストボードのいずれかひとつを使用しますが、固有の名前を private ペーストボードに付ける事ができます。例えば、同じソフトウェアベンダーによって作成された"兄弟" のアプリケーションとデータを共有するために、private ペーストボードを作成できます。
ペーストボードは、多くの表現で多くの項目を保持
ペーストボードの項目は、ペーストボード上に配置されたデータの一部です。ペーストボードは、画像ファイルや文書のような単一の項目を保持することも、複数の項目を保持することもできます。ペーストボードクラスのメソッドは(OS X では、NSPasteboardItem クラス) プロパティリストオブジェクトとして、またはバイナリデータとして、単一または複数のペーストボードの項目を読み書きできます。
異なる機能を持つアプリケーション間での共有を容易にするために、ペーストボード項目は同じデータの複数の表現を含むことができます。たとえば、リッチテキストエディタは RTFD、RTF、そしてペーストボード項目として書き込むデータのプレーンテキストの表現を提供できます。項目の各表現は異なる、同一タイプ識別子(UTI) で識別されます。
ペーストボードの持続性
OS X では、バックグラウンドで実行されているペーストボードサーバは、ペーストボードに置かれるデータに永続性を与えます。データを預けているアプリケーションが終了すると、データは関心のあるリーダーのために利用可能なまま残ります。ペーストボードサーバは、いくつかの同時データ転送を区別する個々のペーストボードを維持します。
iOS では、public(システム) のペーストボードは永続的ですが、デフォルトでは private(アプリケーション) ペーストボードはそうでありません。これらの private ペーストボードは、それらを作成したアプリケーションが終了したときに存在しなくなります。ただし、アプリケーションのペーストボードが永続的なようにすることができます。
前提条件の記事
(なし)
関連記事
同一タイプ識別子プロパティリスト
既知のディスカッション
ペーストボードプログラミングガイドサンプルコードプロジェクト
DemoMonkey
LightTable