FinderSync 检查是否选择了扩展
FinderSync check if extension is selected
我正在开发一个 FinderSync
扩展,我在检查选择是否正在选择或 selecting/deselecting 扩展时遇到一些问题。
有没有办法以编程方式检查是否在 System Preferences->Extensions
中选择了 FinderSync
扩展程序?
是否有 API 在此选择更改时收到通知?
除了使用以下内容外,还有 API 到 select/deselect 的扩展吗?
system("pluginkit -e use -i com.mycompany.finderExt")
请注意,我已经访问过这些页面:
pluginkit -m -A -i com.mycompany.finderExt
如果启用分机,呼叫将return
"+ com.mycompany.finderExt(1)"
如果分机未启用,呼叫将return
"- com.mycompany.finderExt(1)"
注意加号和减号,只需解析 return 即可确定扩展是否已启用。
FinderSync 扩展完全是 "application"。但它的包被命名为.appex。
当您在系统偏好设置中启用它时,macOS 会自动加载它
(可以通过Activity app 或ps -ef 命令查看)
因此,您可以通过以下代码轻松检查它:
runningApps = [[NSRunningApplication runningApplicationsWithBundleIdentifier:@"your.bundle.id"] retain];
if runningApps.count != 0{
//your extension was enabled
}
else{
//your extension was not enabled
}
macOS 10.14 Mojave 添加了两种有用的扩展管理新方法:
The application hosting a Finder Sync Extension can determine whether the user has enabled the extension, and can show the UI for managing extensions. When the application becomes active again, it can check whether the user has enabled the extension.
@available(OSX 10.14, *)
open class var isExtensionEnabled: Bool { get }
@available(OSX 10.14, *)
open class func showExtensionManagementInterface()
我正在开发一个 FinderSync
扩展,我在检查选择是否正在选择或 selecting/deselecting 扩展时遇到一些问题。
有没有办法以编程方式检查是否在 System Preferences->Extensions
中选择了 FinderSync
扩展程序?
是否有 API 在此选择更改时收到通知?
除了使用以下内容外,还有 API 到 select/deselect 的扩展吗?
system("pluginkit -e use -i com.mycompany.finderExt")
请注意,我已经访问过这些页面:
pluginkit -m -A -i com.mycompany.finderExt
如果启用分机,呼叫将return
"+ com.mycompany.finderExt(1)"
如果分机未启用,呼叫将return
"- com.mycompany.finderExt(1)"
注意加号和减号,只需解析 return 即可确定扩展是否已启用。
FinderSync 扩展完全是 "application"。但它的包被命名为.appex。 当您在系统偏好设置中启用它时,macOS 会自动加载它 (可以通过Activity app 或ps -ef 命令查看)
因此,您可以通过以下代码轻松检查它:
runningApps = [[NSRunningApplication runningApplicationsWithBundleIdentifier:@"your.bundle.id"] retain];
if runningApps.count != 0{
//your extension was enabled
}
else{
//your extension was not enabled
}
macOS 10.14 Mojave 添加了两种有用的扩展管理新方法:
The application hosting a Finder Sync Extension can determine whether the user has enabled the extension, and can show the UI for managing extensions. When the application becomes active again, it can check whether the user has enabled the extension.
@available(OSX 10.14, *)
open class var isExtensionEnabled: Bool { get }
@available(OSX 10.14, *)
open class func showExtensionManagementInterface()