首页 > 解决方案 > Xamarin.Mac 停靠图标不接受拖放文件

问题描述

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

在此处输入图像描述

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

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

另外,我应该编写什么样的代码来接收拖放到停靠图标的文件路径ViewController

标签: c#viewcontrollervisual-studio-macxamarin.mac

解决方案


我自己解决了这个问题。

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

在此处输入图像描述

Document在项目中选择Class,对于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

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

在此处输入图像描述


推荐阅读