首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FinderSync检查是否选择了扩展

FinderSync检查是否选择了扩展
EN

Stack Overflow用户
提问于 2015-10-05 08:46:48
回答 3查看 1.1K关注 0票数 6

我正在开发一个FinderSync扩展,在检查选择是选择,还是选择/取消选择扩展时,我遇到了一些问题。

是否有一种方法以编程方式检查是否在FinderSync中选择了System Preferences->Extensions扩展

在此选择更改时,是否有任何API需要得到通知?

除了使用以下内容之外,是否有任何API可以选择/取消选择一个扩展?

代码语言:javascript
复制
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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-13 17:18:10

代码语言:javascript
复制
pluginkit -m -A -i com.mycompany.finderExt

如果启用了分机,调用将返回。

"+ com.mycompany.finderExt(1)"

如果未启用分机,则调用将返回。

"- com.mycompany.finderExt(1)"

注意加号和减号,只需解析返回以确定是否启用了扩展。

票数 9
EN

Stack Overflow用户

发布于 2018-08-14 01:23:03

macOS 10.14 Mojave为扩展管理添加了两种有用的新方法:

承载Finder同步扩展的应用程序可以确定用户是否启用了扩展,并可以显示用于管理扩展的UI。当应用程序再次激活时,它可以检查用户是否启用了扩展。

代码语言:javascript
复制
@available(OSX 10.14, *)
open class var isExtensionEnabled: Bool { get }

@available(OSX 10.14, *)
open class func showExtensionManagementInterface()
票数 3
EN

Stack Overflow用户

发布于 2017-09-11 03:34:08

FinderSync扩展正是一个“应用程序”。但是它的包名为.appex。当您在系统首选项中启用它时,macOS将自动加载它(可以通过活动应用程序或ps -ef命令检查)。

因此,您可以很容易地通过以下代码来检查它:

代码语言:javascript
复制
runningApps = [[NSRunningApplication runningApplicationsWithBundleIdentifier:@"your.bundle.id"] retain];
if runningApps.count != 0{
  //your extension was enabled
}
else{
 //your extension was not enabled
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32944475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档