OSX 上的 GTK# 文件选择器非本机外观

GTK# File Chooser Non Native Look on OSX

我的 C# 应用程序使用 Mono Framework 和 GTK UI 运行 Mac.I 在 Filechooser dialog.As per gtk [=] 的外观和感觉方面有问题11=] 我应该得到这些图标

但我得到的是这个在左侧面板中没有正确图标或 drives.For 的图标驱动那里有一个名为 Volumes 的文件夹,用户需要打开它 manually.I 认为这是不是本机 Mac 用户 expects.I 发布了从网络上获得的 2 个屏幕截图。

我有这个 GTK 版本 (2.2) 与 Mono 捆绑在一起 Mac.What 我应该怎么做才能获得更原生的外观和感觉?请指教

您可以使用较旧的开源 MonoMac 或较新的 Xamarin.Mac 打开 NSOpenPanel 并使用本机 OS-X 文件选择器而不是基于 xplat 的 GTK 2 版本。

只要您记得通过 MonoMac 静态方法初始化应用程序,就可以在 GTK# 之上混合 MonoMac 对话框 NSApplication.Init()。在应用程序启动的早期执行此操作,但在 GTK# 初始化之后。

关于打开本机 NSOpenPanel,这里是在 GTK# 按钮单击处理程序中使用的示例:

button.Clicked += (object sender, EventArgs e) => {
    Application.Invoke (delegate {
        var nsOpenPanel = new NSOpenPanel ();
        nsOpenPanel.ReleasedWhenClosed = true;
        nsOpenPanel.Prompt = "Select file";
        var result = nsOpenPanel.RunModal ();
        if (result == 1) {
            button.Label = nsOpenPanel.Url.ToString ();
        }
    });
};

注意:将调用包装在一个 Application.Invoke 委托中总是明智的,这样一切都在主 GTK UI 线程上执行。