可以在Mac上打开qt并在打开的查找器窗口中选择(突出显示)某些文件吗?

时间:2017-02-09 09:37:59

标签: macos qt select applescript finder

在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);`

...但只能选择一个文件。

有人帮帮我吗?谢谢!

2 个答案:

答案 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];