我很确定是的,如果你想要这样的自定义附件视图,你必须提供整个东西。真可惜——但提交雷达并没有什么坏处!
可以提供您自己的附件视图-prepareSavePanel:
,然后覆盖-fileTypeFromLastRunSavePanel
以返回所选类型。但是NSDocument
,令人讨厌的是, 的文档没有承诺它会尊重这一点。试试看!
如果这不起作用,看起来您需要提供自己的-runModalSavePanelForSaveOperation:delegate:didSaveSelector:contextInfo:
. 按照 Apple 对方法的描述:
此方法的默认实现首先确保使用 Cocoa Bindings 的 NSEditorRegistration 非正式协议注册的任何编辑器已提交其更改,然后创建一个保存面板,如果有多个文件类型,则添加一个标准的“文件格式”附件视图用户进行选择,[self shouldRunSavePanelWithAccessoryView] 返回 YES,设置面板的各种属性,调用 [self prepareSavePanel:theSavePanel] 提供自定义机会,然后呈现面板。如果用户确定,则调用面板 -saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:。
请注意的文档-writableTypesForSaveOperation:
:
您可以在创建自定义保存面板附件视图时调用此方法,以轻松呈现与 NSDocument 在其标准文件格式弹出菜单中相同的类型集。