クリップボードにコピーする : Objective-C プログラミング
PROGRAM
クリップボードにコピーする
iOS アプリで、クリップボードにデータをコピーしたいときは UIPasteboard を使います。
たとえば NSString 型の変数 string に格納されているテキストをクリップボードにコピーしたい場合は次のようにします。
// テキストをクリップボードにコピーします。
[[UIPasteboard generalPasteboard] setValue:string forPasteboardType:@"public.text"];
コピー時に使用できるメソッド
先ほどは setValue:forPasteboardType: メソッドを使いましたが、この他にもクリップボードに値をコピーするメソッドが用意されています。
setValue:forPasteboardType: | NSString, NSArray, NSDictionary, NSDate, NSNumber, UIImage, NSURL 型の値を、その種類を指定してクリップボードにコピーします。 |
---|---|
setData:forPasteboardType: | NSData 型の値を、その種類を指定してクリップボードにコピーします。 |
pasteboardType
コピーするときに指定する pasteboardType は、UTI (Uniform Type Identifiers) という形式の文字列で指定します。
UTI については Uniform Type Identifiers Reference: System-Declared Uniform Type Identifiers にも紹介がありました。
この中で、使えそうなものをピックアップしてみます。
これ以外にもたくさん定義されていますけど、コピーするデータを他のアプリでどんな用途で使ってもらいたいかを考えれば、複雑なアプリを作るのでなければ、実際に使う UTI 形式はそれほど多くなさそうです。
テキスト形式
public.text | シンプルなテキストから、HTML や RTF のようなマークアップを含むテキストデータを意味します。 |
---|---|
public.plain-text | 書式を含まないシンプルなテキストを意味します。 |
public.utf8-plain-text | UTF8 エンコードされた、書式を含まないシンプルなテキストを意味します。 |
public.html | HTML 形式を意味します。 |
public.xml | XML 形式を意味します。 |
public.url | URL 形式を意味します。 |
文書データ
public.content | 全ての文書コンテンツを意味します。このうちの特に PDF のようなテキストと特殊フォーマットデータを含むコンテンツを意味する public.composite-content という形式もあります。 |
---|
映像・音楽
public.image | 画像を意味します。他にも public.fax, public.jpeg, public.png といった形式に特化した UTI も用意されています。 |
---|---|
public.audiovisual-content | さまざまな映像・音声を意味する UTI です。 |
public.movie | 動画を表す UTI です。より具体的な public.avi や public.mpeg といった UTI もあります。 |
public.audio | 音声を表す UTI です。より具体的な public.ulaw-audio や public.aiff-audio といった UTI もあります。 |
プログラミング
public.source-code | ソースコードを意味します。 |
---|---|
public.c-source | C ソースコードを意味します。他のも Objective-C 言語を表す public.objective-c-source や C ヘッダーを意味する public.c-header など、様々な言語用の UTI も用意されています。 |
public.script | スクリプトコードを意味します。他にも public.php-script など、スクリプト言語に特化した UTI も用意されています。 |
汎用的な形式
public.data | バイトストリームデータを意味します。 |
---|---|
public.archive | 圧縮ファイルを意味します。 |
独自の UTI を定義するには
UTI は "public" で始まるもののような Apple が用意したもの以外にも、自分で独自に定義できます。
文字列で自由に設定できますけど、次のような自分が所有するドメインを逆に並べて記載する方法で定義するのが推奨されています。
jp.ez-net.document
独自の UTI を定義できても、それを使ったクリップボードをどう使うかは使う側次第なので、独自に UTI を定義する場面はあまりないかもしれません。
[ もどる ]