Как зарегистрировать службу в Mac OS?

Я экспериментирую с Mono, MonoMac и С#. Я пытаюсь написать простое приложение на основе сервиса для Mac OS. Я следил за документацией для разработчиков от Apple. реализации поставщиков услуг.

Моя проблема: как зарегистрировать службу. В Objective-C я бы вызвал метод setServicesProvider NSApplication. Но вроде в MonoMac такого метода нет. Это правильно? В монодокументах я обнаружил, что NSApplication должен иметь поставщика услуг с соответствующим установщиком. Но вызов SetServicesProvider как:

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

приводит к следующей ошибке:

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

В чем проблема? Является ли свойство ServicesProvider частью 10 % AppKit, который еще не реализован (в разделе «Статус» на странице проекта MonoMac указано «AppKit (около 10 % осталось сделать))?

В качестве альтернативы я попытался найти класс NSRegisterServicesProvider, как это было предложено в примере разработчика Apple. Но я не могу найти такой класс.

Кто-нибудь знает, как зарегистрировать службу с помощью MonoMac? Не могли бы вы указать мне решение, пример?

Я использую надстройку разработки MonoDevelop 3.1.1 и Xamarin.Mac (версия 3.1.1). Последнее, по крайней мере, то, что заявлено в менеджере надстроек. На вкладке информации о версии в разделе «О MonoDevelop» указано «Xamarin.Mac: не установлено». Но я думаю, что последнее неверно, так как я получаю, например, доступ к классу NSApplication, используя MonoMac.AppKit.

Я задал этот вопрос в списке рассылки Mono-OSX, но, к сожалению, пока не получил ответа.


person Helge    schedule 02.03.2013    source источник


Ответы (1)


Это обернуто свойством в Xamarin.Mac. Пытаться;

NSApplication.SharedApplication.ServicesProvider = new myClass()

Самое сложное, что я обнаружил в этих сервисах, — правильное объявление info.plist.

person Daniel Park    schedule 02.03.2015