我正在开发一个必须为 FinderSync 应用程序扩展提供支持的 mac 应用程序。一切正常,除了一些边栏和工具栏图标问题。
有没有办法在没有用户干预的情况下以编程方式添加工具栏和侧边栏图标? 从文档中,我没有找到任何可以帮助我做到这一点的东西。他们提到这些图标时,提到用户必须手动将文件夹手动拖动到侧边栏,或手动自定义工具栏,但不是在运行时实现此目的的 API。 但是,有些应用程序会在有人从工具栏中删除它们时自行添加。
除了 iconset 之外,还有其他方法可以显示我的文件夹的图标吗?我注意到还有其他应用程序在边栏中确实有一个图标,但它们似乎没有在捆绑资源中设置图标,并且 CFBundleIconFile 设置为 icns 资源。
有没有办法禁用 menuForMenuKind: 中的菜单项?在正常的 NSMenu 情况下,菜单项应该没有操作或目标,但事实并非如此。即使我这样做,菜单项仍处于启用状态。
非常感谢您的帮助!
最佳答案
欢迎来到痛苦的世界。 我也一直在开发 Finder Sync 扩展,所以这里是您问题的答案:
现在我正在寻找以编程方式添加工具栏按钮的方法,我看到一些短语可以做到这一点。 要将项目添加到侧边栏,您应该使用一些 LSSharedFileList 代码: Add Item to Finder Sidebar 通过相同的 API,您可以检查您的项目是否出现在边栏中,并且不要添加重复项。
现在(自 Mac OS X 10.11 起)侧边栏图标只能通过图标集进行更改。以前可以通过 Finder 代码注入(inject)来更改它,这在 10.11 中是不允许的。
只需使用 [menuItem setEnabled:NO]。另请注意,并非所有菜单内容都在 10.10 中可用 - 例如,未显示复选框并且分隔项显示为空格。此外,处理程序中的 sender 参数始终为空 NSMenuItem 对象。
关于objective-c - 侧边栏图标、工具栏图标和上下文菜单的 FinderSync 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32692909/