2015-09-21 81 views
1

我正在開發一個mac應用程序,必須提供FinderSync應用程序擴展的支持。一切工作正常,除了一些邊欄和工具欄圖標的問題。Finder同步問題與側欄圖標,工具欄圖標和上下文菜單

  1. 有沒有一種方法可以在沒有用戶干預的情況下以編程方式添加工具欄和側欄圖標? 從文檔,我沒有找到任何幫助我做到這一點。他們通過提及用戶必須手動將文件夾手動拖動到側邊欄或手動定製工具欄,而不是API來在運行時實現此目的,來引用這些圖標。 但是,如果有人將其從工具欄中移除,應用程序會自行加回。

  2. 是否有其他方式顯示我的文件夾圖標,但iconset除外?我注意到還有其他應用程序在側欄中有一個圖標,但它們似乎沒有在捆綁資源中設置圖標,並且CFBundleIconFile被設置爲icns資源。

  3. 有沒有辦法在menuForMenuKind中禁用菜單項:?在正常的NSMenu情況下,菜單項應該沒有動作或目標,但事實並非如此。即使我這樣做,菜單項仍然啓用。

非常感謝您的幫助!

回答

1

歡迎來到痛苦的世界。 我一直在開發搜索同步擴展爲好,所以這裏問題的答案:

  1. 現在我在尋找增加編程工具欄按鈕的方式,我看到一些詞組,這是可以做到。 要將項目添加到側邊欄,您應該使用一些LSSharedFileList代碼: Add Item to Finder Sidebar 通過相同的API,您可以檢查您的項目是否存在於側邊欄中,並且不要添加重複項。

  2. 現在(自Mac OS X 10.11以上)側欄圖標只能通過圖標集更改。以前有可能通過Finder代碼注入來更改它,這在10.11中是不允許的。

  3. 只要使用[menuItem setEnabled:NO]。另請注意,並非所有菜單的東西在10.10中都可用 - 例如,複選框不顯示,分隔符項目顯示爲空格。另外,處理程序中的sender參數始終爲空NSMenuItem對象。