gpt4 book ai didi

cocoa - 将文件从 Finder 拖到 Web View 时获取文件路径?

转载 作者:行者123 更新时间:2023-12-03 16:25:06 24 4
gpt4 key购买 nike

我正在用 cocoa 开发一个 flvplayer。我想从 finder 中拖动一个 flv 文件并将其放到 webview 窗口中(我用它来查看 flv)。但我没有从 finder 中获得该文件的路径。这是我的代码:

 _ (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;
}

我看了相关文档,发现PerformDragOperation的函数可以这样写:

_ (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;
}

我可以获取这个拖拽文件的文件内容,但是如何获取路径呢?

NSString *fileName = [fileContents filename];

我测试了一下,结果不正确。

<小时/>

我做了测试,但是draggedFilePaths不起作用。我发现代码:

NSPasteboard *pboard = [sender draggingPasteboard];

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

应用程序运行时,没有出现字符串“aa”,为什么?

最佳答案

像这样:

NSArray *draggedFilePaths = [pboard propertyListForType:NSFilenamesPboardType];

关于cocoa - 将文件从 Finder 拖到 Web View 时获取文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/423623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com