3

私はグーグルでドキュメントを読みました。SOで検索したところ、Applescriptの使用を提案する回答が見つかりましたが、サンドボックスのためにApplescriptを使用できません。

私はCocoaアプリケーション(Objective-Cで書かれ、サンドボックス化されています)に取り組んでいます。AppleMailアプリケーションからドラッグアンドドロップを実装しています。アプリは、Finderと同様に、emlメールメッセージを受信またはコピーする必要があります。

見てみましNSPromisedFilesPboardTypeたが、どうしたらいいのかわかりませんでした。私はそのようなコードを- (BOOL)acceptDrop:(id<NSDraggingInfo>)infoメソッドで試しました:

if ([info.draggingPasteboard.types containsObject:@"MV Super-secret message transfer pasteboard type"]) {
    NSURL *tempFolder = [FM createTempFolderInFolder:AppDataDir()];
    NSArray *filenames = [info namesOfPromisedFilesDroppedAtDestination:tempFolder];
    // tempFolder is filepath of generated temp folder in appdata directory so it is accessible for sandboxed app
    // filenames becomes nil
    return YES;
}

厚紙ですべてのタイプを繰り返してみると、次のように表示されます。

Dropped types are:
Type: dyn.ah62d4rv4gu8y4zvanr41a3pwfz30n25wqz4ca5pfsr30c35feb4he2pssrxgn6vasbu1g7dfqm10c6xeeb4hw6df (null)
Type: MV Super-secret message transfer pasteboard type (null)
Type: dyn.ah62d4rv4gu8zg7puqz3c465fqr3gn7bakf41k55rqf4g86vasbu1g7dfqm10c6xeeb4hw6df (
        {
        account = Gmail;
        id = 6622;
        mailbox = INBOX;
        subject = "got SUV?";
    }
)
Type: Super-secret Automator pasteboard type (
        {
        account = Gmail;
        id = 6622;
        mailbox = INBOX;
        subject = "got SUV?";
    }
)
Type: dyn.ah62d4rv4gu8yc6durvwwa3xmrvw1gkdusm1044pxqyuha2pxsvw0e55bsmwca7d3sbwu (
    eml
)
Type: Apple files promise pasteboard type (
    eml
)
Type: public.url (null)
Type: CorePasteboardFlavorType 0x75726C20 (null)
Type: dyn.ah62d4rv4gu8yc6durvwwaznwmuuha2pxsvw0e55bsmwca7d3sbwu (
    "message:%3C1a392cb9-b78c-402d-8d7f-dbd1d4a9ec42@Neptune.do.losaltos.k12.ca.us%3E",
    ""
)
Type: Apple URL pasteboard type (
    "message:%3C1a392cb9-b78c-402d-8d7f-dbd1d4a9ec42@Neptune.do.losaltos.k12.ca.us%3E",
    ""
)
Type: public.url-name (null)
Type: CorePasteboardFlavorType 0x75726C6E (null)
Type: com.apple.pasteboard.promised-file-content-type com.apple.mail.email
Type: com.apple.pasteboard.promised-file-url (null)
Type: dyn.ah62d4rv4gu8y6y4usm1044pxqzb085xyqz1hk64uqm10c6xenv61a3k (null)
Type: NSPromiseContentsPboardType (null)

誰かが私を助けることができますか?

4

1 に答える 1

3

私はこのプロセスを実行しましたが、実際には非常に簡単でした.

ペーストボード タイプで「com.apple.pasteboard.promised-file-content-type = com.apple.mail.email」を探します。見つかった場合は、ドロップ先 URL を指定して(NSDraggingInfo から)namesOfPromisedFilesDroppedAtDestination を呼び出すだけで、ファイルが作成されます。ドラグが終わったら。

于 2013-03-23T00:04:25.597 に答える