3

在我正在使用的 mac 应用程序中NSSavePanel- 但它的行为非常奇怪。有时我无法更改文件的默认名称。

我这样使用它:

NSSavePanel *savePanel = [NSSavePanel savePanel];
[savePanel setAllowedFileTypes:@[@"jpg"]];
[savePanel setLevel:CGShieldingWindowLevel()];

if([savePanel runModal] == NSFileHandlingPanelOKButton)
{
    //saving file
}

我找不到为什么有时它可以让我更改文件名而其他时候不,我可以保存文件但保存面板中的更改名称被阻止

4

3 回答 3

0

您是否尝试过提供默认名称?

[savePanel setNameFieldStringValue:@"New File.txt"];
于 2015-04-18T17:31:49.590 回答
0

斯威夫特 4

let panel = NSSavePanel()
panel.nameFieldStringValue = "filename.txt" // <-- user editable prompt 

if panel.runModal() == NSApplication.ModalResponse.OK, let url = panel.url {
    // use url path here
}
于 2018-06-13T19:50:00.707 回答
0

这很奇怪,但我想分享我的解决方案。如前所述@Rupert Pupkin,我已经使用过nameFieldStringValue,但有奇怪的行为NSSavePanel,有时不会更改名称,有时会更改。所以我看到我没有描述我的水平NSSavePanel

savePanel.nameFieldStringValue = "YourFileName"
savePanel.level = NSWindow.Level.modalPanel

这两行代码一起为我工作。

我当前的 NSSavePanel 代码是这样的:

let savePanel = NSSavePanel()
savePanel.title = "Download File"
savePanel.prompt = "Download"
savePanel.message = "Choose a directory to save your scanned document"
savePanel.nameFieldStringValue = "myfile"
savePanel.level = NSWindow.Level.modalPanel

savePanel.showsTagField = false
savePanel.isExtensionHidden = false
savePanel.canCreateDirectories = true

希望有帮助!

于 2020-06-10T09:07:11.217 回答