gpt4 book ai didi

objective-c - 如何在 Mac OS X 上获取拖放到应用程序二进制文件上的文件列表?

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

在 OS X 上,在某些文件上运行应用程序的常见方法是将它们放在 Finder 中的应用程序包中。我需要获取这些文件的列表。

我尝试从命令参数中获取它们(就像在 Windows 中一样),但命令行仅包含程序路径。

如何使用 Qt 5.2 或 Cocoa 框架获取此列表?

最佳答案

要接受使用应用程序打开的文件,您需要接受应用程序委托(delegate)的 openFile 调用,例如

- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
{
NSLog(@"%@", filename);
return YES;
}

现在,如果您想接受拖动的文件到窗口上,则必须实现 NSDraggingDestination协议(protocol),这里有几个关于处理该 API 的答案。

现在对于Qt,您需要实现事件处理程序,并处理QEvent::FileOpen事件,其参数是QFileOpenEvent例如

class MyApp : public QApplication
{
protected:
bool event(QEvent *);
};

bool
MyApp::event(QEvent *event)
{
switch (event->type()) {
case QEvent::FileOpen: {
QFileOpenEvent *evt = static_cast<QFileOpenEvent *>(event));
// Do something with event->file() - the file that was opened
return true;
}
default:
return QApplication::event(event);
}
}

关于objective-c - 如何在 Mac OS X 上获取拖放到应用程序二进制文件上的文件列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21116259/

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