gpt4 book ai didi

cocoa - 覆盖 NSSaveDialog 中可能的导出格式列表

转载 作者:行者123 更新时间:2023-12-03 16:32:47 24 4
gpt4 key购买 nike

我有一个可以加载第三方代码的应用程序。第三方代码可以执行的功能之一是添加应用程序可以导出的格式。我使用 saveDocumentTo: 作为实现导出的方法。

我知道我可以通过覆盖我的文档的 writableTypesForSaveOperation: 来自定义要保存的可用文件类型的菜单,但不起作用的是在保存对话框中没有适当的文件扩展名从菜单中选择时添加到文件名。

我尝试覆盖 fileNameExtensionForType:saveOperation: 但这甚至没有被调用。

如何使“保存”对话框找到正确的文件扩展名(假设在编译时未知)?

最佳答案

我已经在保存面板的自定义导出附件 View 中完成了此操作。自定义导出附件 View 仅更改 NSSavePanel每当用户更改要导出到的格式时允许的文件类型。

如果要设置扩展名,请传递一个数组,其中一个元素包含该扩展名。

文档包含 -[NSSavePanel setAllowedFileTypes:] 的一些重要细节。在这方面的行为,以支持更复杂的情况:

Discussion

A file type can be a common file extension, or a UTI. A nil value indicates that any file type can be used. The default value is nil.

If no extension is given by the user, the first item in the allowedFileTypes will be used as the extension for the save panel. If the user specifies a type not in the array, and allowsOtherFileTypes is YES, they will be presented with another dialog when prompted to save.

NSOpenPanel: In versions of Mac OS X less than v10.6, this property is ignored. For applications that link against v10.6 and higher, this property determines which files should be enabled in the open panel. Using the deprecated methods to show the open panel (the ones that take a types: parameter) will overwrite this value, and should not be used. The allowed file types can be changed while the panel is running (for example, from an accessory view). The file type can be a common file extension, or a UTI. This is also known as the “enabled file types.” A nil value indicates that all files should be enabled.

在某些情况下,您可能还会看到专用的导出对话框,如果您有多种不同的格式,这可以降低导出的复杂性。和以前一样,您只需更新允许的文件类型即可支持此功能(在这种情况下不一定是动态的)。

关于cocoa - 覆盖 NSSaveDialog 中可能的导出格式列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9479557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com