首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSSavePanel不能更改文件名

NSSavePanel不能更改文件名
EN

Stack Overflow用户
提问于 2015-04-16 08:15:53
回答 3查看 601关注 0票数 3

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

我就是这样用的:

代码语言:javascript
复制
NSSavePanel *savePanel = [NSSavePanel savePanel];
[savePanel setAllowedFileTypes:@[@"jpg"]];
[savePanel setLevel:CGShieldingWindowLevel()];

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

我找不到为什么有时它允许我更改文件名,而另一些时候,我可以保存文件,但是保存面板中的更改名称被阻止

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-18 17:31:49

您试过提供默认名称吗?

代码语言:javascript
复制
[savePanel setNameFieldStringValue:@"New File.txt"];
票数 0
EN

Stack Overflow用户

发布于 2018-06-13 19:50:00

Swift 4

代码语言:javascript
复制
let panel = NSSavePanel()
panel.nameFieldStringValue = "filename.txt" // <-- user editable prompt 

if panel.runModal() == NSApplication.ModalResponse.OK, let url = panel.url {
    // use url path here
}
票数 0
EN

Stack Overflow用户

发布于 2020-06-10 09:07:11

这是如此奇怪,但我想分享我的解决方案。正如@Rupert Pupkin所描述的,我已经使用了nameFieldStringValue,但是NSSavePanel有一些奇怪的行为,它不是有时更改名称,有时是更改名称。所以我看我没有描述我的NSSavePanel级别

代码语言:javascript
复制
savePanel.nameFieldStringValue = "YourFileName"
savePanel.level = NSWindow.Level.modalPanel

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

我当前的NSSavePanel代码如下所示:

代码语言:javascript
复制
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

希望这能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29669048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档