我正在开发一个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
发布于 2015-10-13 17:18:10
pluginkit -m -A -i com.mycompany.finderExt如果启用了分机,调用将返回。
"+ com.mycompany.finderExt(1)"
如果未启用分机,则调用将返回。
"- com.mycompany.finderExt(1)"
注意加号和减号,只需解析返回以确定是否启用了扩展。
发布于 2018-08-14 01:23:03
macOS 10.14 Mojave为扩展管理添加了两种有用的新方法:
承载Finder同步扩展的应用程序可以确定用户是否启用了扩展,并可以显示用于管理扩展的UI。当应用程序再次激活时,它可以检查用户是否启用了扩展。
@available(OSX 10.14, *)
open class var isExtensionEnabled: Bool { get }
@available(OSX 10.14, *)
open class func showExtensionManagementInterface()发布于 2017-09-11 03:34:08
FinderSync扩展正是一个“应用程序”。但是它的包名为.appex。当您在系统首选项中启用它时,macOS将自动加载它(可以通过活动应用程序或ps -ef命令检查)。
因此,您可以很容易地通过以下代码来检查它:
runningApps = [[NSRunningApplication runningApplicationsWithBundleIdentifier:@"your.bundle.id"] retain];
if runningApps.count != 0{
//your extension was enabled
}
else{
//your extension was not enabled
}https://stackoverflow.com/questions/32944475
复制相似问题