Tech Any*Any
Mac や Web のあんなこと、こんなこと。

Dashboard Widget でクリップボードを利用する

2009/01/07

Mac OS X のダッシュボードウィジェットを作るとき、Mac OS X 固有のコマンドを使うことで、クリップボードを利用したコピー&ペーストを実装できます。

クリップボード関連のコマンドには、

  • pbcopy : クリップボードへコピー
  • pbpaste : クリップボードの内容をペースト

があります。

例えば、"TEST" という文字をクリップボードにコピーする場合は、次の JavaScript コードになります。

widget.system("/bin/echo -n 'TEST' | /usr/bin/pbcopy", null);

ただし日本語を使う場合は、Shift JIS に変換してからコピーする必要があるため、iconv で変換するコードを追加します。

widget.system("/bin/echo -n 'TEST' | /usr/bin/iconv -f UTF8-MAC -t SHIFT_JIS | /usr/bin/pbcopy", null);

また、クリップボードの内容を "output" 変数に入れる場合は、次の JavaScript コードになります。

output = widget.system("/usr/bin/pbpaste", null).outputString;

なお、ダッシュボードウィジェットでコマンドを使えるようにするため、Info.plist の AllowSystem もしくは AllowFullSystem を Yes にする必要があります。

コメントする