Xamarin.Mac停靠图标不接受拖放文件

Xamarin.Mac dock icon does not accept drag and drop files

我的应用程序不像其他应用程序那样接受在 Dock 图标上拖放文件。

例如Visual Studio中的停靠图标为Mac接受文件,但是当我构建和运行默认项目时,它不接受拖放Dock 图标。

也许我需要在 Xcode 中配置一些东西,但我该怎么做?

还有,我应该写什么样的代码来接收拖放到ViewController中的dock图标的文件路径?

我自己解决了这个问题。

首先,在您的项目中打开 info.plist 并单击 window 底部的 Advanced 选项卡,然后单击 Add Document Type 按钮。

Select DocumentClass 项中,对于 Identifier,输入 public.item。对于 Role,将其设置为 None

然后您就可以将它拖放到 Dock 图标上了。

然后写代码可以在程序端接收拖放的文件

AppDelegate.cs
public override void OpenUrls(NSApplication application, NSUrl[] urls)
{
  //base.OpenUrls(application, urls);
  var alert = new NSAlert();
  alert.MessageText = "AppDelegate.OpenUrls()";
  alert.InformativeText = urls[0].AbsoluteString;
  alert.AddButton("Ok");
  alert.RunModal();
}

参考。 https://forums.xamarin.com/discussion/158538/xamarin-mac-appdelegate-openurls-not-invoked

现在您可以接收和查看有关拖放文件的信息。