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