2015-10-05 53 views
5

FinderSync uzantısını geliştiriyorum ve seçimin seçilmesinin veya uzantı seçilmesinin/seçiminin kaldırılmasının kontrol edilmesinde bazı sorunlar yaşıyorum.FinderSync uzantısı seçili olup olmadığını kontrol edin

System Preferences->Extensions'da FinderSync uzantısının seçilip seçilmediğini program aracılığıyla denetlemenin bir yolu var mı?

Bu seçim değiştiğinde bildirim almak için herhangi bir API var mı?

Aşağıdakileri kullanarak bir uzantı seçmek/seçimini kaldırmak için herhangi bir API var mı? Zaten bu sayfaları ziyaret eden

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

Not: uzatma etkinse

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

OSX Finder Sync Extension

+0

: Sistem Tercihleri'nde etkinleştirmek, MacOS otomatik

Yani (eğer Etkinlik uygulaması veya ps -ef komutla kontrol edebilirsiniz) yüklenmesinin, kolayca gibi bazı kod tarafından kontrol edebilirsiniz Bildiğim kadarıyla, sorularınızın cevapları hayır, hayır ve hayır. Yine de yanlış bir şekilde kanıtlanmış olurum. – dejuknow

+0

Neden seçili olup olmadığını kontrol etmelisiniz? Neden her seferinde zorla seçilmez? Pluginkit komutu neden sizi rahatsız ediyor? – Mugen

+0

Uygulamam gereken özelliklerden biri, uygulamanın tercihler diyaloğunu etkinleştirebildiği/devre dışı bırakabileceği ve bu seçeneğin Sistem Tercihleri ​​-> Uzantılar seçeneğiyle senkronize edilebileceği uygulama tercihleri ​​iletişim kutusunda bir onay kutusu oluşturmaktır. Söylediğin gibi yapabilirdim, ancak eğer kullanıcı uzantıyı Sistem Tercihleri'nden çıkarmak istiyorsa, onun eylemini geçersiz kılmak istemiyorum. Ayrıca, iki onay kutusunu senkronizasyondan kolayca yapabilirim. Şimdilik sadece bir düğme gösteriyorum ve tıklandığında kullanıcıyı Extensions prefpane'e yönlendiriyorum. – ciprian

cevap

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

, çağrı dönecektir

"+ com.mycompany.finderE Sadece, com.mycompany.finderExt (1) "

Bildirimi artı ve eksi işaretleri - xt (1)" uzantısı etkin değilse

, çağrı

dönecektir" Uzantının etkin olup olmadığını belirlemek için dönüşü ayrıştırın.

0

FinderSync uzantısı tam olarak bir "uygulama" dır. ancak onun paketine .appex adı verilir.

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