NSSavePanel 无法更改文件名
NSSavePanel can't change file name
在我的 mac 应用程序中,我使用的是 NSSavePanel
- 但它的行为很奇怪。有时无法更改文件的默认名称。
我是这样使用的:
NSSavePanel *savePanel = [NSSavePanel savePanel];
[savePanel setAllowedFileTypes:@[@"jpg"]];
[savePanel setLevel:CGShieldingWindowLevel()];
if([savePanel runModal] == NSFileHandlingPanelOKButton)
{
//saving file
}
我不明白为什么有时它允许我更改文件名而其他时候不允许,我可以保存文件但在保存面板中更改名称被阻止
您是否尝试过提供默认名称?
[savePanel setNameFieldStringValue:@"New File.txt"];
Swift 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
}
这很奇怪,但我想分享我的解决方案。正如 @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
希望对您有所帮助!
在我的 mac 应用程序中,我使用的是 NSSavePanel
- 但它的行为很奇怪。有时无法更改文件的默认名称。
我是这样使用的:
NSSavePanel *savePanel = [NSSavePanel savePanel];
[savePanel setAllowedFileTypes:@[@"jpg"]];
[savePanel setLevel:CGShieldingWindowLevel()];
if([savePanel runModal] == NSFileHandlingPanelOKButton)
{
//saving file
}
我不明白为什么有时它允许我更改文件名而其他时候不允许,我可以保存文件但在保存面板中更改名称被阻止
您是否尝试过提供默认名称?
[savePanel setNameFieldStringValue:@"New File.txt"];
Swift 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
}
这很奇怪,但我想分享我的解决方案。正如 @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
希望对您有所帮助!