如何将数据从Mac Automator传递到Xamarin.Mac c#应用程序
本文关键字:Mac Xamarin 应用程序 Automator 数据 | 更新日期: 2023-09-27 18:05:13
我是osx和xamarin开发的新手。我已经开发了一个应用程序,使用Xamarin在给定的文件夹上做一些事情。Mac在c#中。我使用Automator Service将这个应用程序添加到Finder中的文件夹右键菜单中。如何将右击文件夹的名称传递给Xamarin应用程序?如果这是不可能的,如何添加一个文件/文件夹浏览按钮到我的应用程序在XCode?提前感谢
在Automator中,您可以使用"Run Shell Script"操作并使用参数打开XamMac应用程序,就像您通过cmd行手动启动它一样。
这将是一个"运行Shell脚本"作为"自动化服务":
for f in "$@"
do
myArgs+="'""${f}"'""" "
done
echo "${myArgs}"
/Applications/XamMacStartupArgs.app/Contents/MacOS/XamMacStartupArgs "${myArgs}" &
在您的XamMac应用程序中,Main将接收传入的这些参数,您当然会对它们进行处理:
static class MainClass
{
static void Main (string[] args)
{
Console.WriteLine (args[0]);
NSApplication.Init ();
NSApplication.Main (args);
}
}
注意:如果你需要将"参数"传递给正在运行的XamMac应用程序,你需要钩子打开和重新打开Apple事件处理程序,并以这种方式处理它们:
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ScriptableCocoaApplications/SApps_handle_AEs/SAppsHandleAEs.html