hpi*_*que 5 macos cocoa nsdocument nssavepanel
考虑一个NSDocument
支持两种文档类型(例如 BMP 和 JPEG)的 Cocoa 。虽然一种类型没有保存选项(例如 BMP),但另一种类型有(例如 JPEG 的压缩级别)。
你如何实现这一点?
我知道您应该覆盖prepareSavePanel:
并设置给定NSSavePanel
. 但是,这样做会用文档类型弹出窗口替换默认的附件视图。
如果使用自定义附件视图,是否需要重新创建文档类型弹出窗口?
如果是,如何将选定的文档类型和附加保存选项传递给NSDocument
写入方法?
如果没有,只有在选择了相应的文档(例如 JPEG)类型时,我如何才能显示其他保存选项(例如压缩级别)?中是否有用于文档类型更改的委托方法NSSavePanel
?
我非常确定,是的,如果您想要像这样的自定义附件视图,您必须提供整个内容。真可惜\xe2\x80\x94\xc2\xa0但是归档雷达没有什么坏处!
\n\n可以提供您自己的附件视图-prepareSavePanel:
,然后覆盖-fileTypeFromLastRunSavePanel
以返回所选类型。然而,NSDocument
令人烦恼的是,它的文档没有承诺它会尊重这一点。尝试一下看看!
如果这不起作用,那么您似乎需要提供自己的-runModalSavePanelForSaveOperation:delegate:didSaveSelector:contextInfo:
. 请遵循Apple对该方法的描述:
\n\n\n此方法的默认实现首先确保使用 Cocoa Bindings\' NSEditorRegistration 非正式协议注册的任何编辑器已提交其更改,然后创建一个保存面板,如果有多个文件类型,则添加一个标准“文件格式”附件视图用户从中进行选择,并且 [self shouldRunSavePanelWithAccessoryView] 返回 YES,设置面板的各种属性,调用 [selfprepareSavePanel:theSavePanel] 以提供自定义机会,然后呈现面板。如果用户确定,则调用面板 -saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo: 。
\n
的文档请-writableTypesForSaveOperation:
注意:
\n\n您可以在创建自定义保存面板附件视图时调用此方法,以轻松呈现与 NSDocument 在其标准文件格式弹出菜单中相同的类型集。
\n
归档时间: |
|
查看次数: |
954 次 |
最近记录: |