由于我在 Qt 应用程序上启用了沙箱,因此在使用 QFileDialog 导航时,控制台中有很多日志消息:
23/02/2016 12:25:51,000 kernel[0]: Sandbox: Joker(87965) deny file-read-xattr /Users/martin/Documents/a.txt
23/02/2016 12:25:51,000 kernel[0]: Sandbox: Joker(87965) deny file-read-xattr /Users/martin/Documents/b.txt
23/02/2016 12:25:52,000 kernel[0]: Sandbox: Joker(87965) deny file-read-xattr /Users/martin/Documents/c.txt
有没有办法避免这种情况?
答案 0 :(得分:1)
正如here所述,
文件保存对话框需要非空的默认文件名才能在沙箱中正常工作。您可以按如下方式为保存对话框提供默认文件名:
QString fileSavePath = QFileDialog::getSaveFileName(this, "Save file", "default filename");
或者如果您自己创建对话框实例:
QFileDialog *fileSaveDialog = new QFileDialog(this);
fileSaveDialog->setAcceptMode(QFileDialog::AcceptSave);
fileSaveDialog->selectFile("default filename");
您可能还应该使用自定义info.plist并插入键ForAppStore
,其值为yes
要使用自定义plist进行构建,请创建该文件并在.pro中引用它,如下所示: -
QMAKE_INFO_PLIST = Info.plist