アプリケーションにサービスを追加しようとしています。このアプリケーションには、たとえば「MyService」と呼ばれるサービスがあります。Finder にファイルがあり、そのファイルを新しい名前で同じ場所にコピーしたいと考えています。ユーザーはファイルを右クリックし、MyService を選択します。新しいファイルは、元のファイルの隣に新しいファイル名で表示されます。問題は、アプリケーションがサンドボックス化されていることです。で選択したファイルのURLを取得できます:
- (NSPasteboardItem*)merge:(NSPasteboard *)pboard
userData:(NSString *)userData error:(NSString **)error {
NSArray* fileArray=[pboard propertyListForType:NSFilenamesPboardType];
}
私のfileArrayにはファイルパスが含まれます。その後、このファイルパスを新しいファイル名に変更できます。を使用して新しいファイルを作成するだけの場合:
NSString *filePath = [filesArray objectAtIndex:0];
PDFDocument *PDF = [[PDFDocument alloc] initWithURL:[NSURL fileURLWithPath:filePath]];
NSURL *newFileUrl =[NSURL fileURLWithPath:newfilepath];
[PDF writeToURL:newFileURL];
エラーが出ます!私がやっていることは間違っていることはわかっていますが、ユーザーがアクションをコミットしたことを Finder に伝える方法があるため、このアクションはある意味で保護されています。この newFileURL が許可されていることを確認するにはどうすればよいですか? ご協力ありがとうございました