3

我正在开发一个必须为 FinderSync 应用程序扩展提供支持的 mac 应用程序。一切正常,除了一些侧边栏和工具栏图标问题。

  1. 有没有办法在没有用户干预的情况下以编程方式添加工具栏和侧边栏图标?从文档来看,我没有找到任何可以帮助我做到这一点的东西。他们引用这些图标,提到用户必须手动将文件夹手动拖动到侧边栏,或手动自定义工具栏,而不是在运行时实现此目的的 API。但是,如果有人从工具栏中删除它们,有些应用程序会自行添加。

  2. 除了图标集,还有其他方法可以显示我的文件夹的图标吗?我注意到还有其他应用程序在侧边栏中确实有一个图标,但它们似乎没有在捆绑资源中设置图标,并且 CFBundleIconFile 设置为 icns 资源。

  3. 有没有办法禁用 menuForMenuKind: 中的菜单项?在正常的 NSMenu 情况下,菜单项应该没有动作或目标,但事实并非如此。即使我这样做了,菜单项仍然启用。

非常感谢你的帮助!

4

1 回答 1

3

欢迎来到痛苦的世界。我也一直在开发 Finder Sync 扩展,所以这里是您问题的答案:

  1. 现在我正在寻找以编程方式添加工具栏按钮的方法,我看到了一些可以做到这一点的短语。要将项目添加到侧边栏,您应该使用一些 LSSharedFileList 代码: 将项目添加到 Finder 侧边栏 通过相同的 API,您可以检查您的项目是否存在于侧边栏中,并且不要添加重复项。

  2. 现在(从 Mac OS X 10.11 开始)侧边栏图标只能通过 iconset 进行更改。以前可以通过 Finder 代码注入来更改它,这在 10.11 中是不允许的。

  3. 只需使用 [menuItem setEnabled:NO]。另请注意,并非所有菜单内容在 10.10 中都可用 - 例如,未显示复选框,分隔项显示为空格。此外,您的处理程序中的 sender 参数始终是空的 NSMenuItem 对象。

于 2015-10-01T12:21:33.540 回答