objective-c - 侧边栏图标、工具栏图标和上下文菜单的 FinderSync 问题

标签 objective-c macos toolbar sidebar findersync

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

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

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

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

非常感谢您的帮助!

最佳答案

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

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

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

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

关于objective-c - 侧边栏图标、工具栏图标和上下文菜单的 FinderSync 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32692909/

相关文章:

iPhone Dev - 在处于编辑模式的 TableView 中实现复选标记

ios - AFNetworking 与 CLLocation 给出错误

objective-c - 为什么这不起作用? - 将数据写入plist

python - Pycares 的构建轮 (Setup.Py) 错误

macos - 将 CIImage 渲染到 IOSurface 中的特定矩形

Android:使用选项卡在不同 fragment 之间切换

ios - 如何在 ios 中的弹出 block 上添加 UIImageView

android - 按下时如何设置 MenuItems 工具栏的样式

android - 为什么 AppBar 会在我的应用栏背景中添加方 block

ios - NSFetchedResultsController:排序描述符和部分