问题标签 [nssavepanel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - NSSavePanel 文件路径
我只在处理文本文件时使用NSSavePanel 。如果我有要导出的图像,我使用NSOpenPanel以便用户可以选择一个目录,并且我不会陷入沙箱文件路径限制。不过,这一次,我想使用 NSSavePanel 让用户保存图像文件(bmp、gif、jpeg、jp2、png)。
这个 NSSavePanel 有一个 AccessoryView 控件,允许用户使用NSPopupMenu选择图形格式。它的索引是formatIndex1。我知道如果应用程序被沙盒化,代码会失败。这是因为用户选择的确切路径是 path0,并且上面的代码在到达 exportfile2 之前为其附加了文件扩展名。那么我该如何获取带有文件扩展名的确切路径。 如果“隐藏扩展名”关闭,预览会自动附加文件扩展名。然而,预览不会无法导出图像。
谢谢您的帮助。
objective-c - 从默认 NSSavePanel 获取文件 URL 路径
如何从默认的“另存为”对话框表中获取文件 URL?我在 Xcode 中使用带有 Snow Leopard 10.6 SDK 的基于文档的应用程序。
我已经搜索了两天的互联网和 Apple 文档,只找到了使用“另存为”对话框表的唯一实例的答案;每个人似乎都想通过制作自己的文件 -> 保存功能来重新发明轮子,但这不是我想要做的——我已经做到了!
例如,我不想使用这种方法,我不想用类似的东西替换默认-(void)saveDocumentAs:sender
值NSDocument
:
NSSavePanel
相反,我想要的只是用户从默认工作表中为其文件选择的文件 URL 。因为,正如您从这个测试中看到的fileTypeFromLastRunSavePanel
那样,它在块中不起作用,所以它要么使用默认保存面板而不是文件 URL 获取文件类型,要么从自定义保存面板而不是文件获取文件 URL类型...至少不是fileTypeFromLastRunSavePanel
.
- 用户打开文件
- 用户修改文件
- 用户执行“另存为...”
- 用户输入文件的新名称并按“保存”
- 我需要文件的新名称。如何在不创建自己的 savePanel 实例的情况下获得它?
[self fileURL]
编辑:我在 NSDocument 子类中尝试过
方法,但它返回 null 除非文档已经保存到磁盘。
编辑 2: 只是为了真正明确地澄清我在这里问什么,我如何从默认的 NSSavePanel savePanel 中获取用户选择的 URL,而不是我自己的 NSSavePanel 的 savePanel 实例?我可以在不创建 NSSavePanel 的子类并覆盖其方法的情况下做到这一点吗?我认为您将获得某种对用户在默认 savePanel 中选择的文件的 URL 引用,而不必将该功能添加到您自己的 NSSavePanel 实例中是有意义的。
objective-c - 是否可以继承 NSSavePanel?
我想知道是否有办法继承 NSSavePanel。或者,如果您要创建一个虚拟对象,您将如何模仿 NSSavePanel 的 beginSheetModalForWindow:CompletionHandler 函数?
在 .m 类文件中实现函数时,我对如何实现块处理程序一无所知。
macos - 如何自定义 NSSavePanel 中的“取消”按钮标题?
我可以使用-setPrompt:方法来自定义确定按钮。但我没有找到自定义取消的方法。我能做到这一点吗?
osx-mavericks - NSSavePanel 用于在沙盒化后保存文件
我有一个 mac AVRecording 应用程序,它录制视频并将其保存到通过 NSSavePanel 选择的位置。在我将应用程序沙盒化之前,它运行良好。
对于沙盒,我添加了以下权利 com.apple.security.files.user-selected.read-write com.apple.security.assets.movies.read-write com.apple.security.files.downloads.read-write 这仅允许保存到下载和电影文件夹。
如何将我的文件保存到任何所需的位置、桌面、文档等?
objective-c - 沙盒应用程序中的 NSSavePanel setNameFieldStringValue:@"Untitled" 错误
在文档中找不到任何内容,这似乎是一个错误:如果指定@"Untitled"
为NSSavePanel
's name 提交的字符串值,则在运行时文本字段为空。如果指定其他任何内容 - 一切正常(OSX 10.8,SDK 10.8)。它只发生在沙盒应用程序中。
这是一个要重现的示例项目:https ://www.dropbox.com/s/catecqe68a0omp3/savepanel.zip
有人有同样的问题吗?
objective-c - 如何在 NSSavepanel 中隐藏另存为和标记字段
我正在尝试创建一个自定义保存面板,我可以使用accessoryView
属性添加我的字段和复选框,NSSavePanel
但我也想隐藏默认保存为标签字段和标签标签和字段,如图所示有没有办法做到这一点?
来自 json 加速器应用程序的屏幕截图。是它NSSavepanel
还是任何其他控制?
macos - Mac CGDataConsumerCreateWithFilename:无法打开“.myfile.pdf”进行写入:不允许操作
我正在生成一个 PDF 文档并为用户提供将其保存到磁盘的选项。我向他们展示了一个NSSavePanel
供他们选择要保存的文件名。如果他们选择了一个已经存在的文件,它会提示他们是否确定并想要替换该文件。如果他们同意替换文件,那么我会生成 PDF 并将其写入所选的 URL。
但是,我的写入失败并出现以下错误:
我有适当的权利来写入磁盘上的文件。碍事的文件是我在之前的测试中生成的文件。在将我的文件写入该 URL 之前,我是否需要明确删除现有文件,或者有什么方法可以告诉系统它可能会覆盖现有文件?
这是我用来启动的NSSavePanel
代码(我的代码保存他们最后选择的目录,以便它可以默认为所有未来保存的相同位置):
这是我用来将文件写入给定 URL 的代码,它只是标准的 PDFKit -writeToURL:
:
macos - 我如何知道从 NSSavePanel 中选择了哪种文件类型?
我正在 Mavericks 系统上编写应用程序。我正在调用 NSSavePanel 来保存文件。我可以给面板一个 NSArray 的 UTI 以用作可能的保存类型,并且(我猜)面板将自动生成一个输出类型的附件视图。在面板完成块期间,我可以使用面板的“URL”属性来获取(可能创建和)写入文件。但是似乎没有属性可以指示选择了哪种输出类型。
我应该查看 URL 的文件扩展名吗?这是因为有一个允许自由扩展命名的选项吗?(我这里没有打开该选项。)
另外:我的 NSArray 的 UTI 是一个随机类型,后跟一个固定类型。我目前仅在不等于随机类型时才添加固定类型。如果我多次使用相同的 UTI,面板会崩溃,还是会折叠重复项?如果它不会崩溃,那么我可以通过无条件追加来节省时间。
cocoa - 沙盒环境下关闭 NSSavePanel
在沙盒环境中,NSSavePanel
由 Powerbox 进程控制。
我想知道是否有一种方法可以在NSSavePanel
不让用户明确单击“取消”或按 Esc 的情况下解除?例如,如果我想在 的附件视图中添加“关闭”按钮NSSavePanel
,有没有办法做到这一点?