2

我需要正确解析从 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 文件。

4

0 回答 0