ブラウザ ビューからカスタム ビューへのドラッグ操作を処理しました。ユキヒョウではうまく機能しますが、サンドボックスのあるマウンテン ライオンではうまく機能しません。
in browser view:
NSMutableArray* urls = [[[NSMutableArray alloc] init] autorelease];
..............put some NSUrl to urls array....................
[pasteboard writeObjects:[NSArray arrayWithArray:urls]];
in my receive custom view:
NSArray* pasteboardItems = [pasteboard readObjectsForClasses:[NSArray arrayWithObject:[NSString class]] options:nil];
NSArray* pasteboardItems2 = [pasteboard readObjectsForClasses:[NSArray arrayWithObject:[NSURL class]] options:nil];
NSArray* pasteboardItems3 = [pasteboard readObjectsForClasses:[NSArray arrayWithObject:[NSImage class]] options:nil];
NSLog(@"%@",pasteboardItems);
NSLog(@"%@",pasteboardItems2);
NSLog(@"%@",pasteboardItems3);
my log is:
2012-08-09 18:33:43.886 iCollage[6885:303] __CFPasteboardIssueSandboxExtensionForPath: error for [/Users/xxxx/Library/Containers/xxxxxxxxxxxx/Data/Downloads/1343902069.jpg]
2012-08-09 18:33:44.546 iCollage[6885:303] ( "file://localhost/Users/xxx/Library/Containers/xxxxxxxx/Data/Downloads/1343902069.jpg")
2012-08-09 18:33:44.547 iCollage[6885:303] ( "file://localhost/Users/xxxxx/Library/Containers/xxxxxx/Data/Downloads/1343902069.jpg")
2012-08-09 18:33:44.547 iCollage[6885:303] ()
私の質問は:
1.このエラーを修正する方法__CFPasteboardIssueSandboxExtensionForPath;ドキュメントを参照しましたが、それについて何も見つかりませんでした.ファイルにアクセスする権限があることを確認しています.
2.なぜpasteboardItems2に値があるのですか?ペーストボードにはURLのみを書き込み、文字列は書き込みません.NSStringタイプとNSUrlタイプの両方からURLを取得できることにうんざりしました! (iFinder からファイルをドラッグしようとすると、url は pasteboardItems にのみ存在し、pasteboardItems2 には存在しません) 理由を知っている人はいますか? 誰かがこの問題を解決するのを手伝ってくれると、最初の問題は自動的に修正されると思います。