在 Mac OSX 上使用 mono gtk# 打开文件

本文关键字:gtk# 文件 mono Mac OSX | 更新日期: 2023-09-27 17:55:47

我使用 mono 和 gtk# 为 mac 开发了一个应用程序。
问题是默认文件处理程序。我使用此信息列表注册我的应用程序(片段)

...
<array>
    <dict>
        <key>CFBundleTypeName</key>
        <string>My Filetype</string>
        <key>CFBundleTypeIconFile</key>
        <string>file.icns</string>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>ext</string>
            <string>EXT</string>
        </array>
        <key>LSIsAppleDefaultForType</key>
        <true/>
    </dict>
</array>
....

它正确注册(图标匹配,打开我的应用程序),但是每当我打开文件时,都会出现以下消息:

The document "test.ext" could not be opened. mono cannot open files of this type.

那么我怎样才能让它工作呢?

在 Mac OSX 上使用 mono gtk# 打开文件

我自己发现了:

  1. 将 https://github.com/mono/monodevelop/tree/master/main/src/addins/MacPlatform/MacInterop 包含在项目中。

  2. 使用此代码

    ApplicationEvents.OpenDocuments+= delegate (object sender, ApplicationDocumentEventArgs e) {
        if (e.Documents != null && e.Documents.Count > 0) {
            // e.Documents holds the files
        }
        e.Handled = true;
    };