2009-01-08 8 views
2

Je développe un flvplayer avec du cacao. Je veux faire glisser un fichier flv depuis le finder et le déposer dans la fenêtre webview (je l'utilise pour voir le flv). Mais je n'ai pas eu le chemin de ce fichier de finder. Ceci est mon code:Obtenez le chemin du fichier lorsque vous faites glisser un fichier de finder à un webview?

_ (void)showflv(nsstring*)aa 
{    
    ..........  
    //Register to accept flv drag/drop  
    NSString *pboardType = NSCreateFileContentsPboardType(@"flv"); 
    NSArray *dragTypes = [NSArray arrayWithObject:pboardType]; 
    [self registerForDraggedTypes:dragTypes]; 
} 

_ (BOOL)performDragOperation:(id <NSDraggingInfo>)sender  
{ 
    NSPasteboard *pboard = [sender draggingPasteboard];  
    if ([[pboard types] containsObject:NSFileContentsPboardType]) { 
    } 
    return YES; 
} 

J'ai lu le document à propos this.I constater que la fonction de PerformDragOperation peut être écrit comme ceci:

_ (BOOL)performDragOperation:(id <NSDraggingInfo>)sender 
{ 
    NSPasteboard *pboard = [sender draggingPasteboard]; 

    if ([[pboard types] containsObject:NSFileContentsPboardType]) { 
     NSFileWrapper *fileContents = [pboard readFileWrapper]; 
     // Perform operation using the file’s contents 
    } 
    return YES; 
} 

je peux obtenir le filecontents de ce faisant glisser file.but comment obtenir le chemin?

NSString *fileName = [fileContents filename]; 

J'ai fait un test, ce n'était pas correct.


J'ai fait un test, mais le draggedFilePaths n'a pas work.I trouvé que le code:

NSPasteboard *pboard = [sender draggingPasteboard]; 

if ([[pboard types] containsObject:NSFileContentsPboardType]) { 
    //NSFileWrapper *fileContents = [pboard readFileWrapper]; 
    // Perform operation using the file’s contents 
    nslog(@"aa"); 
} 

lorsque la course d'application, la chaîne "aa" ne semble pas, pourquoi?

Répondre

8

Comme si:

NSArray *draggedFilePaths = [pboard propertyListForType:NSFilenamesPboardType]; 
0
NSPasteboard *pastboard = [sender draggingPasteboard]; 

NSURL *URL = [NSURL URLFromPasteboard:pastboard]; 

NSLog(@"%@", URL); 
Questions connexes