2015-10-05 82 views
5

我開發一個FinderSync延伸和我在檢查是否選擇選擇,或者選擇/取消擴展有一些問題。FinderSync覈對擴展選擇

有沒有一種方式,如果一個FinderSync擴展在System Preferences->Extensions選擇以編程方式檢查?

是否有任何的API來得到通知該選擇更改時?

是否有任何的API來選擇/取消的擴展,使用下面的旁邊?

system("pluginkit -e use -i com.mycompany.finderExt") 

請注意,我已經到過這些網頁:

How to enable FinderSync Extension in the System Preference in Cocoa - Objective C

OSX Finder Sync Extension

+0

: 當你在系統偏好啓用它,MacOS將會將其加載自動

所以(您可以通過活動應用程序或ps -ef命令檢查),你可以很容易地通過像一些代碼檢查據我所知,你的問題的答案是否定的,不是。雖然我很高興被證明是錯誤的。 – dejuknow

+0

爲什麼你需要檢查它是否被選中?爲什麼不每隔一段時間強行選擇一次?爲什麼pluginkit命令會困擾你? – Mugen

+0

我必須實現的功能之一是在應用首選項對話框中有一個複選框,用戶可以啓用/禁用Finder擴展,並且該選項應與系統偏好設置 - >擴展中的選項同步。我可以像你說的那樣做,但是如果用戶想要從系統偏好中禁用我的擴展,我不想重寫他的操作。另外,我可以讓兩個複選框不同步很容易。現在我只顯示一個按鈕,點擊後將用戶重定向到擴展前綴。 – ciprian

回答

7
pluginkit -m -A -i com.mycompany.finderExt 

如果擴展名被啓用,調用將返回

「+ com.mycompany.finderE XT(1)」

如果未啓用的延長,調用將返回

「 - com.mycompany.finderExt(1)」

公告的加號和減號,只是解析返回以確定是否啓用了擴展。

0

FinderSync擴展是一個 「應用程序」,究竟。但它的包被命名爲.appex。

runningApps = [[NSRunningApplication runningApplicationsWithBundleIdentifier:@"your.bundle.id"] retain]; 
if runningApps.count != 0{ 
    //your extension was enabled 
} 
else{ 
//your extension was not enabled 
}