Safari からドロップされた GIF ファイルを正しく解析する必要があります。Chrome または Opera では、非常に簡単に実行できます。
-(BOOL)performDragOperation:(id<NSDraggingInfo>)sender
{
if ([types containsObject:@"CorePasteboardFlavorType 0x75726C20"]) // GIF format
{
NSData* gifData = [pb dataForType:@"CorePasteboardFlavorType 0x75726C20"];
NSString* someName = [self _sanitizeFileNameString:[[NSURL URLFromPasteboard:pb] absoluteString]];
NSString* tempStr = [[MSSettingsManager instance] tmpDir];
NSString* randomFilePath = [NSString stringWithFormat:@"%@/%ld%ld%ld.gif",tempStr,random(),random(),random()];
if (someName)
randomFilePath = [NSString stringWithFormat:@"%@/%@ - %d.gif",tempStr,someName,rand()];
[gifData writeToFile:randomFilePath atomically:YES];
}
}
Safari では、PasteBoard のすべての入力タイプが GIF ファイルを破損します。
NSFilesPromisePboardType - 私にも何も与えません。
if ([[pb types] containsObject:NSFilesPromisePboardType]){
NSURL* newFilePath = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/",[[MSSettingsManager instance] tmpDir]]];
NSArray *filenames = [sender namesOfPromisedFilesDroppedAtDestination:newFilePath];
NSLog(@"%@",filenames); // 0x000...
}
だから、私の探求は - PasteBoard または型のない行ファイルから明確な GIF ファイルを取得する方法です。