在Mac上,我的应用程序在用户的文件夹中创建了一些文件,然后我需要向用户显示这些文件。我可以通过QDesktopServices::openUrl
打开带有finder的文件夹,但我不能select(highlight)
刚刚在打开的查找器窗口中创建的文件。
我试过以下代码:
QStringList scriptArgs;
scriptArgs << QLatin1String("-e")
<< QString::fromLatin1("tell application \"Finder\" to select POSIX file \"%1\"")
.arg(filePath);
QProcess::execute(QLatin1String("/usr/bin/osascript"), scriptArgs);
scriptArgs.clear();
scriptArgs << QLatin1String("-e")
<< QLatin1String("tell application \"Finder\" to activate");
QProcess::execute("/usr/bin/osascript", scriptArgs);`
...但只能选择一个文件。
有人帮帮我吗?谢谢!答案 0 :(得分:0)
您可以通过传递select
对象列表来告诉Finder选择多个项目,例如
tell application "Finder" to select {POSIX file "/Applications/Calendar.app", POSIX file "/Applications/Contacts.app"}
(您可以使用/Applications/Utilities/Script Editor.app
来处理这类脚本。)
答案 1 :(得分:0)
我已完成它:
NSMutableArray *fileURLs = [NSMutableArray arrayWithCapacity:fileList.size()];
for(int i=0; i<fileList.size(); i++)
{
[fileURLs addObject:[NSURL fileURLWithPath:[NSString stringWithCString:fileList.at(i).toUtf8().data() encoding:4] isDirectory:false]];
}
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];