如何在Mac OS下注册服务

本文关键字:注册 服务 OS Mac | 更新日期: 2023-09-27 18:01:46

我正在尝试Mono, MonoMac和c#。我尝试编写一个基于Mac OS服务的简单应用程序。我参考了苹果关于服务提供商实现的开发者文档。

我的问题是:如何注册服务。在Objective-C中,我会调用NSApplication的setServicesProvider方法。但在MonoMac中似乎没有这样的方法。这样对吗?在mono文档中,我发现NSApplication应该有一个带有相应setter的服务提供者。但是像这样调用SetServicesProvider:

MyClass myClass = new MyClass(); 
NSApplication.SetServicesProvider(myClass); 

导致以下错误:

Error CS0117: `MonoMac.AppKit.NSApplication' does not contain a definition for `SetServicesProvider' (CS0117) 

这里有什么问题?到目前为止,尚未实现的AppKit的10%的ServicesProvider属性部分(MonoMac项目页面上的状态部分在"AppKit(约10%待完成)"下说)?

或者,我试着找到一个类NSRegisterServicesProvider在苹果开发人员的例子中建议。但我找不到这样的课程。

有人知道如何使用MonoMac注册服务吗?你能给我指出一个解决方法吗,举个例子?

我使用MonoDevelop 3.1.1和Xamarin.Mac开发插件(版本3.1.1)。后者至少是外接程序管理器中所声明的。版本信息选项卡在"关于MonoDevelop"说"Xamarin。Mac:未安装"。但我认为后者是不正确的,因为我得到例如使用MonoMac.AppKit访问NSApplication类。

我在Mono - OSX邮件列表上问了这个问题,但不幸的是,到目前为止我没有得到答复。

如何在Mac OS下注册服务

这是由Xamarin.Mac中的属性包装的。尝试;

NSApplication.SharedApplication.ServicesProvider = new myClass()

我发现这些服务中最困难的事情是使info.plist声明正确。