官方文檔介紹地址:
1:系統服務Menu
(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/SysServices/Articles/menu.html#//apple_ref/doc/uid/20000851-BBCDFIDD)
2:如何服務定義屬性(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/SysServices/Articles/properties.html)
3:實現服務的所需的方法(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/SysServices/Articles/providing.html)
4:提交,測試
/System/Library/CoreServices/pbs -dump
/System/Library/CoreServices/pbs -update
代碼:
實際實現後的效果
2:在你創建的應用程序info.plist中添加,如圖所示:
Instance method name對應的uninstallApp就是該服務會執行的類中的方法名,例如:
- (void)uninstall:(NSPasteboard *)pboard userData:(NSString *)userData error:(NSString **)error{};
Menu item title 對應的Uninstall With XX就是對應的顯示在Menu中的名字
NSSendFileTypes 對應的com.apple.application 限定了當前註冊的該服務能夠讀取的類型,只有在鼠標右鍵在應用程序上時,彈出的Menu菜單纔會顯示出當前應用程序註冊的服務,如:Uninstall With XX
NSRequiredContext 指定一個約束字典,在那種情況下這個服務才顯示給用戶,或者你也可以爲一個數組。
詳細說明見 2:如何服務定義屬性
3:實現服務所用的方法
4:提交,測試
在實現服務的類中添加
[NSApp setServicesProvider:self];
NSUpdateDynamicServices();
總之將服務的提供者設置爲你實現服務方法的類就對了,然後更新服務。
1:運行程序,在終端輸入
/System/Library/CoreServices/pbs -update 回車 (這個也是讓系統更新服務而已)
然後:
/System/Library/CoreServices/pbs -dump (顯示系統已有的那些服務)
就能查看到你服務的屬性,然後點擊鼠標右鍵,測試。