我正在将 FinderSync Extension 集成到我的 Cocoa 应用程序中以在文件和文件夹中显示徽章。看看下面的两个场景:
- 当我使用 FinderSync Extension(如 DemoFinderSync)运行应用程序时,请查看下图中的蓝色弹出窗口,在这种情况下,Extension 已添加到系统偏好设置中并带有复选标记,并且还将该主体类称为“FinderSync.m”。
- 当我使用我的应用程序方案(如 DemoApp)运行应用程序时,请查看下图中的蓝色弹出窗口,在这种情况下,系统偏好设置中添加了扩展,但没有复选标记,主要类“FinderSync.m”没有调用和 FinderSync 扩展在这种情况下不起作用。
有没有人知道如何使用第二种情况在系统偏好设置中启用 Finder 扩展?
最佳答案
非调试方案(#if !DEBUG):
system("pluginkit -e use -i com.domain.my-finder-extension");
在调试器下运行时,直接为您的扩展提供路径:
NSString *pluginPath = [[[NSBundle mainBundle] builtInPlugInsPath] stringByAppendingPathComponent:@"My Finder Extension.appex"];
NSString *pluginkitString = [NSString stringWithFormat:@"pluginkit -e use -a \"%@\"", pluginPath];
system([pluginkitString cStringUsingEncoding:NSUTF8StringEncoding]);
在您的 applicationDidFinishLaunching 方法中指定它。您还应该仅手动将其打开一次,这样如果用户在系统偏好设置中关闭了您的扩展程序,您就不会在每次应用程序启动时都打开它。我在用户第一次启动我的应用程序时设置了一个 NSUserDefaults 键,该应用程序支持查找器同步扩展。
关于objective-c - 如何在 macOS 系统偏好设置中启用 FinderSync 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31176942/