2013-03-02 79 views
3

我正在試用Mono,MonoMac和C#。我嘗試編寫一個基於Mac OS服務的簡單應用程序。我遵循Apple的developer documentation關於服務提供商的實施。如何在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) 

這裏有什麼問題? ServicesProvider屬性是目前尚未實現的10%AppKit的一部分(MonoMac項目頁面上的狀態部分在「AppKit(剩下大約10%待完成)」中說明)?

或者,我嘗試發現一類NSRegisterServicesProvider在蘋果開發者的例子建議,但我不能找到這樣的一類。

任何人知道如何使用的MonoMac註冊服務?能否請你點我一個解決方案,一個例子嗎?

我正在使用MonoDevelop 3.1.1和Xamarin.Mac開發插件(版本3.1.1)。後者至少是在加載項管理器中聲明的內容。版本信息選項卡中的「Ab出MonoDevelop「說」Xamarin.Mac:未安裝「。但我認爲後者是不正確的,因爲我例如使用MonoMac.AppKit訪問NSApplication類。

我在Mono-OSX郵件列表上問了這個問題,但不幸的是我到目前爲止沒有收到任何回覆。

回答

0

這是由Xamarin.Mac屬性包裹。嘗試;

NSApplication.SharedApplication.ServicesProvider = new myClass()

我已與這些服務是越來越info.plist聲明正確發現最難的事情。