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 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
现在您可以接收和查看有关拖放文件的信息。
我的应用程序不像其他应用程序那样接受在 Dock 图标上拖放文件。
例如Visual Studio中的停靠图标为Mac接受文件,但是当我构建和运行默认项目时,它不接受拖放Dock 图标。
也许我需要在 Xcode 中配置一些东西,但我该怎么做?
还有,我应该写什么样的代码来接收拖放到ViewController
中的dock图标的文件路径?
我自己解决了这个问题。
首先,在您的项目中打开 info.plist
并单击 window 底部的 Advanced
选项卡,然后单击 Add Document Type
按钮。
Select 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
现在您可以接收和查看有关拖放文件的信息。