问题标签 [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.
cocoa - NSSavePanel:压制“确认替换?” 对话
在导航服务世界中,可以指定kNavDontConfirmReplacement
一个选项来创建一个NavDialogRef
在使用已经存在的文件名保存时不会要求用户确认替换文件的选项。如何使用 Cocoa 指定等效行为NSSavePanel
?
objective-c - NSSavePanel 选择文件名的一部分
如何设置在 NSSavePanel 中选择的文件名部分?我只想选择文件名而不是文件扩展名。
这是我注意到的。如果我 setAllowedFileTypes: 对于保存面板,则只选择文件名而不选择文件扩展名。但是,如果我没有设置允许的文件类型,则选择文件扩展名和文件名。
我不想使用 setAllowedFileTypes 但我仍然想控制选择以便不选择文件扩展名。可以这样做吗?
cocoa - 如何使用 NSSavePanel 选择目录?
我需要用户选择我的应用程序可以保存一些文件的现有目录或新目录。
我可以用 NSSavePanel 做到这一点,还是有另一个目录选择器类?
cocoa - 完成处理程序从未调用 NSSavePanel beginWithCompletionHandler
当我使用处理程序打开一个NSSavePanel
或NSOpenPanel
实例时,beginWithCompletionHandler:
永远不会调用它。相反,我看到面板出现了几分之一秒,然后它又消失了,没有让用户选择文件。当我用它打开面板时,runModal
它工作得很好。这里的代码:
我在这里有什么遗漏吗?
谢谢,马克
objective-c - 将 NSView 保存为 png 文件?
我正在制作一个简单的程序,为我玩的游戏创建游戏卡。我已经将它发送给我的一些朋友进行测试,但他们真的希望它能够保存图像,而不仅仅是打印它们。我试图让它保存为 .png 文件。我必须在这里提问。
如何让它将我的视图保存为 .png 文件,包括所有视图的 NSImageWells。
如何将 NSPopupButton 添加到 NSSavePanel 以允许用户选择格式?
任何帮助是极大的赞赏。
cocoa - 非基于文档的应用程序 Cocoa 中的“另存为”
我正在开发一个项目,该项目本质上是使用“sox”通过 shell 脚本创建文件。该应用程序不是基于文档的,它所做的只是调用一个创建文件的脚本,并且不会在内部保存任何数据。但是,我需要提示用户在哪里保存文件,以及在脚本运行之前使用什么文件名。让“另存为..”对话框从用户获取文件路径/文件名以传递给 shell 脚本的最佳方法是什么?
objective-c - 从 NSDocument 类之外保存可可文档
在我的应用程序工作流程中,有时会从 nib 初始化新的模态 NSWindow。这个窗口应该有一个保存文档按钮。这是推荐的方法:
- 通过新的 NSSavePanel 到新实例化的模态窗口并在此处自定义整个保存流程?
- 使用从上述窗口中的按钮接收保存消息的主 NSDocument 类?如果是这样,如何保存文件?
- 还有其他情况吗?
objective-c - 我应该只从主线程调用 NSSavePanel runModal 方法吗?
我的应用程序中有奇怪的崩溃,虽然很少见。
我怀疑它的发生是因为在与主线程不同的线程中调用runModal
。NSSavePanel
我是否正确,这可能是导致崩溃的原因?
cocoa - NSSavePanel 和沙盒
我在理解新的 Lion's Sandbox 时遇到了一些问题。
我知道 Lion 包含一个受信任的守护进程Powerbox
,它的工作是代表沙盒应用程序呈现和控制打开/保存对话框。
就像代码签名和应用程序沙盒指南所说:
任何时候在沙箱中运行的应用程序调用 NSOpenPanel 或 NSSavePanel 对话框,而不是直接显示面板,AppKit 会自动要求 Powerbox 显示对话框。从开发人员的角度来看,这些面板的使用方式不需要更改代码;这个过程是完全透明的。
用户选择一组文件或目录后,Powerbox 使用沙箱内核模块中的新功能来扩展调用应用程序的沙箱以允许访问所选文件。当应用程序代码向面板查询返回的 URL 或文件名时,它已经拥有访问这些文件的权限,并且可以通过它已经使用的几乎任何 API 继续使用这些文件。
行。我使用此代码进行了一些实际测试:
奇怪的是,NSOpenSavePanelDelegate
在完成处理程序之前调用的方法无权访问文件系统上的文件。
它是否正确?
但如果是这样,委托的方法就像panel:validateURL:error:
变得无用!
你能帮我更详细地解释一下应用程序和 之间的联系Powerbox
吗?
sandbox - 在沙盒应用程序中使用 NSSavePanel 替换文件
NSSavePanel
我使用以下代码创建了一个:
如果用户在保存面板中选择了一个已经存在的文件,则会出现警告框““XXX”已经存在。您要替换它吗?”。
如果用户按下“替换”按钮,则在完成处理程序中,使用 的removeItemAtPath:error:
方法删除旧文件NSFileManager
,然后创建新文件(实际上:它是在临时位置创建的,然后使用moveItemAtPath:toPath:error:
方法移动,但我认为这只是一个实现细节):
过去,一切都一直正常运行。然而,今天,我开始使用具有“读/写访问”权限的 Lion's Sandbox。
使用沙箱,removeItemAtPath:error:
是成功的,但以下moveItemAtPath:toPath:error:
返回错误。
这似乎是合理的,因为 Powerbox 赋予我访问(读取和写入)文件的权限。当我删除此文件时,授予我的权利已用尽。
我的猜测对吗?
我怎么解决这个问题?