Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 将附件视图添加到NSC文档';除了自己的文件类型弹出按钮外,s保存面板_Cocoa_Macos_Nsdocument - Fatal编程技术网

Cocoa 将附件视图添加到NSC文档';除了自己的文件类型弹出按钮外,s保存面板

Cocoa 将附件视图添加到NSC文档';除了自己的文件类型弹出按钮外,s保存面板,cocoa,macos,nsdocument,Cocoa,Macos,Nsdocument,我有一个基于NSDocument的应用程序,可以保存为多种文件类型,因此在保存文档时,NSDocument会在“保存”面板中添加一个弹出按钮,作为其附件视图,让用户选择要保存为的类型。很好 现在,我有另一个视图要包含在“保存”面板中,但如果我只是覆盖-[NSDocument prepareSavePanel:并使用-setAccessoryView:插入我自己的视图,它将替换文件类型弹出按钮,因此只有我的视图显示在“保存”面板中,而不是弹出按钮 是否有NSDocument提供的方法可以使“我自己

我有一个基于
NSDocument
的应用程序,可以保存为多种文件类型,因此在保存文档时,NSDocument会在“保存”面板中添加一个弹出按钮,作为其附件视图,让用户选择要保存为的类型。很好

现在,我有另一个视图要包含在“保存”面板中,但如果我只是覆盖
-[NSDocument prepareSavePanel:
并使用
-setAccessoryView:
插入我自己的视图,它将替换文件类型弹出按钮,因此只有我的视图显示在“保存”面板中,而不是弹出按钮


是否有
NSDocument
提供的方法可以使“我自己的视图”及其“文件类型”弹出窗口同时出现在“保存”面板中?看起来我可以抓取现有的附件视图,将其与我自己的附件拼接到一个容器视图中,然后将其放回容器视图,但这似乎很粗糙,我想知道是否有更好的方法来实现这一点,我错过了。

没有,没有更好的方法。可能更容易/更好:

  • 在您自己的附件视图nib中创建文件类型弹出窗口
  • 在运行时,找到
    NSSavePanel
    的现有附件弹出窗口
  • 在弹出窗口上调用
    setTarget:
    /
    setAction:
    /
    setMenu:
    ,参数取自现有弹出窗口的设置方式 这就是我们的应用程序的工作方式,它使您可以更容易地将文件类型弹出窗口与其他控件一起定位,因为它们都位于同一个nib中