gpt4 book ai didi

macos - FireMonkey/Rad Studio XE2 : How can I show the SaveDialog filter on OS X?

转载 作者:行者123 更新时间:2023-12-03 14:48:56 25 4
gpt4 key购买 nike

我创建了一个(Delphi XE2)Firemonkey 示例程序,其中包含一个 TButton 和一个带有两个不同过滤器的 TSavedialog。(TSaveDialog组件支持Win32/Win64和OS X平台。)

它在 Win32/Win64 上运行良好,但我现在不知道为什么它在 OS X (VirtualBox/OS X 10.7.x) 上不显示 Savedialog 过滤器。

如何让它在 OS X 上运行?

procedure TForm1.Button_SaveClick(Sender: TObject);
begin
SaveDialog.Filter:='Format_1 (*.fmt1)|*.fmt1|Format_2 (*.fmt2)|*.fmt2';

If Savedialog.Execute Then ShowMessage(SaveDialog.FileName+#13+'Selected filterindex: '+Inttostr(SaveDialog.FilterIndex));
end;

最佳答案

保存对话框不是在 Delphi 中构建的,而是调用 native MAC OSX 对话框 (NSSavePanel)。这没有用户可选择的过滤器。

当您执行保存对话框时,Delphi 将过滤器作为数组传递给 NSSavePanel.SetAllowedFileTypes,它确定 OSX 对话框将允许用户指定哪些扩展名 - 但没有可选择的列表。

要允许用户从列表中进行选择,您需要创建自己的文件类型选择对话框,然后将该选择传递到保存的对话框作为默认文件类型和唯一的过滤项。

创建全新的 fileSave 对话框的替代方案并不容易,因为 Firemonkey 树组件似乎坚持扩展其所有节点,因此对硬盘驱动器上的所有文件执行完整的遍历。无论如何,MAC 用户都会熟悉标准对话框。

关于macos - FireMonkey/Rad Studio XE2 : How can I show the SaveDialog filter on OS X?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12977734/

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