2

メール メッセージをドロップできるようにしたい Cocoa アプリケーションに取り組んでいます。

Info.plist のドキュメント タイプに含めると、Dock のアイコンにメール メッセージをドロップし、デリゲート メソッドpublic.plain-textから次のようなファイル パスを取得できます。application:openFiles:

"/Users/smokris/Library/Caches/TemporaryItems/Re_ multiplexer question 3.eml"

...そして、このファイルから未加工のメッセージ データを読み取ることができます。ここまでは順調ですね。

ただし、ユーザーがアプリケーション ウィンドウにメール メッセージをドロップできるようにする必要もあります。だから私はこれを行います:

[window registerForDraggedTypes:[NSArray arrayWithObjects:(NSString *)kPasteboardTypeFileURLPromise,nil]];

...そして でperformDragOperation:、ペーストボードから次のような URL を取得します。

message:%3CAANLkTikeTeWYU39JpTovxF2PC0Mm=xkrU7fHNh6gGh6V@mail.gmail.com%3E

この URL で実行しようとするとNSURLRequest、「サポートされていない URL」というエラーが表示されます。

message:このURLから未加工のメッセージ データを取得するにはどうすればよいですか?

4

1 に答える 1

1

Apple の PasteboardPeeper サンプル コード ( http://developer.apple.com/library/mac/#samplecode/PasteboardPeeker/Introduction/Intro.htmlから) で試してみたところ、メッセージをメインにドラッグすると、メッセージが利用可能です:

PasteboardRef: 1395632  ItemCount: 1
   Index: 1  item ID: 789514
      "dyn.ah62d4rv4gu8y4zvanr41xxxxx30n25wqz4ca5pfsr30c35feb4he2pssrxgn6vasbu1g7dfqm1"
      "MV Super-secret message transfer pasteboard type"
      '' ______ 82  /Users/guest/Library/Mail/IMAP-me@gmail.com@imap.gmail.com/INBOX.imapmb

      "dyn.ah62d4rv4gu8zg7puqz3c465fqr3gn7bakf41k55rqf4g86vasbu1g7dfqm10c6xeeb4hw6df"
      "Super-secret Automator pasteboard type"
      '' ______ 454  <?xml version= 1.0  encoding= UTF-8 ?> < DOCTYPE plist PUBLIC  -//Apple//DTD PLI

      "dyn.ah62d4rv4gu8yc6durvwwa3xmrvw1gkdusm1044pxqyuha2pxsvw0e55bsmwca7d3sbwu"
      "Apple files promise pasteboard type"
      '' ______ 212  <?xml version= 1.0  encoding= UTF-8 ?> < DOCTYPE plist PUBLIC  -//Apple//DTD PLI

      "public.url"
      ""
      'url ' ______ 74  message: 3C6EEF5CFD6A04D6395BC617836C91FC3A050542759970026E@cornell.edu 3E

      "public.url-name"
      ""
      'urln' ______ 56  A friend thought you would be interested in this station

      "com.apple.pasteboard.promised-file-content-type"
      ""
      '' ______ 23  dyn.ah6xxxqmxhk2x43prru

      "com.apple.pasteboard.promised-file-url"
      ""
      '' ______ 0  

      "dyn.ah62d4rv4gu8y6y4usm10xxxxqzb085xyqz1hk64uqm10c6xenv61a3k"
      "NSPromiseContentsPboardType"
      '' ______ 0  

      "dyn.ah62d4rv4gk81a4dgsq"
      ""
      'phfs' PT____ 14  ????????  Pssf

「MV Super-secret message transfer pasteboard type」が何であるかはわかりませんが、キー名として信頼したくないかもしれません。むしろ、すべてのキーを調べて、それらのいずれかがファイル パスのように見えるかどうかを確認することができます。

PS これも興味深いかもしれません: http://www.wuffwuffware.com/developer.html

于 2010-11-07T01:25:46.003 に答える